(* ------------------------------------------------------------------------ :Program. BatchRequester.mod :Contents. Öffnet einen Filerequester und schreibt den Pfadnamen der angeklickten Datei in eine Environment-Variable. :Author. Christoph Teuber :Copyright. Freeware :Language. Oberon :Translator. Amiga Oberon :History. 1.1 3.Dez.1990 :Address. Rheinstr. 65, 5600 Wuppertal 1 :Phone. 0202/424394 :Usage. BatchRequester Pfadnamen ------------------------------------------------------------------------- *) MODULE BatchRequester; IMPORT Fr : FileReq, Arg : Arguments, FS : FileSystem, io; TYPE StringTyp = ARRAY 255 OF CHAR; VAR FName,Titel,Enni : StringTyp; Answer : BOOLEAN; PROCEDURE ParseArgs (VAR Tl, Name, Enni : StringTyp); (* Parameter lesen *) VAR Argzahl : INTEGER; BEGIN Argzahl := Arg.NumArgs(); (* Anzahl ermitteln *) IF (Argzahl >3) OR (Argzahl <1) THEN io.WriteString("\n Willst Du mich beschummeln?\n Falsche Anzahl Parameter\n"); HALT(10); END; Arg.GetArg(1,Enni); (* Parameter lesen *) IF Enni = "?" THEN io.WriteString ("\nUsage: BatchRequester <filename>\n"); HALT(0); END; IF Argzahl >1 THEN Arg.GetArg(2,Tl); (* falls *) IF Argzahl >2 THEN Arg.GetArg(3,Name) END; (* vorhanden *) END; END ParseArgs; PROCEDURE CopyToVar (Name, Enni : StringTyp); (* Filenamen in Variable schreiben *) VAR geklappt : BOOLEAN; Datei : FS.File; BEGIN geklappt := FS.Open(Datei, Enni, TRUE); IF geklappt THEN geklappt := FS.WriteString (Datei, Name); IF geklappt THEN geklappt := FS.Close(Datei); END; END; IF NOT geklappt THEN io.WriteString ("Fehler beim Schreiben!\n"); HALT(10) END; END CopyToVar; BEGIN (* Hauptprogramm *) io.WriteString ("BatchRequester 1.1, (c) 1990 by Christoph Teuber\n"); io.WriteString ("Freeware Rheinstr. 65\n"); io.WriteString (" 5600 Wuppertal 1\n"); io.WriteString (" West-Germany\n"); FName := "Ram:Test"; Titel := "BatchRequester"; ParseArgs (Titel, FName, Enni); Answer := Fr.FileReq(Titel, FName); IF Answer THEN CopyToVar (FName, Enni) END; END BatchRequester.