/*
$VER: DirectoryToFilelist.rexx V0.1 © by Nils Görs
 Adds a complete Directory, with all Sub-Dirs, to a FileList

How to install:
---------------
rx rexx:DirToFile.REXX {fu} {s}

Flags...
        Output window
*/

List      = "C:List"		/* Where is your List command? */
TO        = ">t:Filelist.tmp"	/* this is a backup-file */
FileListe = "BBS:Extern/FileChecker/FileChecker.lst"	/* OUTPUT */

CompString= ".info"		/* I'll delete ALL .info entries */
CompWert  = 5

OPTIONS RESULTS
NL = '0a'x
Bar= '"'
 
PARSE ARG Path

IF Path == "" THEN
 DO
  SAY "Benötige Pfadnamen!"
  EXIT 5
 END

Position=INDEX(Path,'"',2)
 IF Position = 0 THEN
  Path = bar||Path||bar
 ELSE
Path = LEFT(Path,Position)


SAY "Bearbeite Pfad:" Path
    /* SAY "Scanning Directory:" Path */
SAY "Bitte haben Sie etwas Geduld!" NL
    /* SAY "Please be patience!" NL */

ADDRESS COMMAND
CALL TIME('Reset')
  list Path "files lformat %s all" TO

TO=DELSTR(TO,1,1)

IF ~OPEN(DName,TO,"Read") THEN
 DO
  SAY "Kann Datei" TO "nicht lesen!"
    /* SAY "Can't read:" TO */
  EXIT 5
 END

IF ~EXISTS(FileListe) THEN
 CALL OPEN(FName,FileListe,"Write")
ELSE
 CALL OPEN(FName,FileListe,"Append")

DO WHILE ~EOF(DName)
  InString  = READLN(DName)
  Laenge=LENGTH(InString)
  String2=RIGHT(InString,Compwert)

  Pos=COMPARE(String2,CompString)
 IF Pos ~= 0 THEN
  DO
   IF InString ~= "" THEN
    CALL WRITELN(FName,InString)
  END
END
SAY "benötigte Zeit:" TIME('Elapsed') "Sek."
    /* SAY "Elapsed Time:" TIME('Elapsed') "sec."*/
CALL CLOSE(DName)
CALL CLOSE(FName)
c:DELETE TO "QUIET"
