/*********************************************************/
/* MakeAsciiDOpus.rexx  $VER: 1.1 (9.5.96)  for PicView  */
/* (C) 1996 Maik Solf            solf@madhouse.boerde.de */
/* Im collecting handdrawn pictures, contact me 2 swap   */
/*********************************************************/

OPTIONS RESULTS

Argumente=ARG(1)

PARSE VAR Argumente FullName ShortName Quelle Rest

/* open rexxreqtools.library */
IF ~SHOW('L',"rexxreqtools.library") THEN
   IF ~ADDLIB("rexxreqtools.library", 0, -30, 0) THEN
      EXIT 10

/* Vars */
Enter='0a'x
DEnter=Enter || Enter

/* User-Options */
PicViewPath='Work:Grafik/PicView/PicView'
YourName='Maik Solf'
Titel='Pictures from' YourName ||  Enter || '-----------------------' || DEnter

/* Open PicView */
IF ~SHOW('Ports','PICVIEW.1') THEN DO
    ADDRESS COMMAND 'C:Run >NIL:' PicViewPath
    ADDRESS COMMAND 'REXXC:WaitForPort PICVIEW.1'
    IF ~SHOW('Ports','PICVIEW.1') THEN EXIT 10
END

ADDRESS 'PICVIEW.1'

/* Katalog laden */
openproject FullName

/* number of pictures */
getentries
Number=RESULT
IF Number=0 THEN DO
   SAY 'No pictures in catalog:' ShortName
   EXIT 5
END

/* make filename */
ShortNameLen=LENGTH(ShortName)-2                 /* without "" */
ShortName=SUBSTR(ShortName,2,ShortNameLen)

ShortNameR=REVERSE(ShortName)
LastPoint=ShortNameLen-INDEX(ShortNameR,'.')
Filename=Quelle || SUBSTR(ShortName,1,LastPoint) || '.txt'

/* open file */
IF OPEN(Handle,Filename,'W')=0 THEN DO
   SAY 'Couldnt open file:' Filename
   EXIT 20
END

/* write titel */
WRITELN(Handle,Titel)

DO i=0 TO Number-1
/* get data of picture */
   /* no parse because Space */
   getpicdata i data name
   NA=RESULT
   getpicdata i data path
   PA=RESULT
   getpicdata i data file
   FI=RESULT
   getpicdata i data comment
   CM=RESULT
   getpicdata i data modetext
   MT=RESULT
   /* parse possible */
   getpicdata i data weekday date time width height depth size format modeid
   PARSE VAR RESULT WD DA TI WI HE DP SI FM MI
/* convert to output */
   CALL UP_Format
/* write to ascii */
   WRITELN(Handle,Entry)
END

IF Number=1
   THEN Ende=Number 'picture'
   ELSE Ende=Number 'pictures'

WRITELN(Handle,Ende)

CLOSE(handle)

IF Number=1
   THEN Ende=Number 'picture saved as ascii from' ShortName || '.'
   ELSE Ende=Number 'pictures saved as ascii from' ShortName || '.'

SAY Ende

EXIT 0

UP_Format:
/* chance your output */
    Entry=''
    Entry=Entry || 'Name   :' NA || Enter
    Entry=Entry || 'Width  :' WI || Enter
    Entry=Entry || 'Height :' HE || Enter
    Entry=Entry || 'Depth  :' DP || Enter
    Entry=Entry || 'Mode   :' MT || Enter
RETURN
