/* automatischer Übersetzung-Script über Shell (c) 1996 Denis Unger (16.07.1996) Dieser Script übersetzt die Datei, welche als Argument angegeben wird. Die Übersetzung wird in die angegebene Zieldatei geschrieben. Aufruf: rx trans_auto.rexx z.B.: rx trans_auto.rexx text1.txt text2.txt englisch */ /* Nun kommen persönliche Einstellungen, welche evtl. geändert werden müssen ...*/ /********************************************************************************/ FLM = 'FLM:FLM' /* Programm FLM */ /********************************************************************************/ arguments=words(Arg(1)) /* Anzahl der übergebene Argumente */ if arguments<4 then do say "Falscher Aufruf !!!" say "rx trans_auto.rexx " exit end quelle=word(arg(1),1) /* Quelle */ ziel=word(arg(1),2) /* Ziel*/ sprache=word(arg(1),3) /*Sprache*/ if word(arg(1),4)="2" then do mode=2 end else do mode=1 end Options Results gestartet = 0 if ~show('PORTS','FLM') then do /* FLM schon gestartet ? */ address command 'run >NIL: ' || FLM /* starte FLM */ address command "SYS:Rexxc/WaitForPort FLM" gestartet = 1 /* FLM wird nach Übersetzung beendet */ end address FLM SETLANGUAGE sprache succ=OPEN(source,quelle,'R') if succ=0 then do say "Fehler beim öffnen der Quell-Datei" exit end succ=OPEN(dest,ziel,'W') if succ=0 then do say "Fehler beim öffnen der Ziel-Datei" CLOSE(source) exit end do forever if EOF(source) then leave /* Falls Quell-Datei am Ende -> Schleife verlassen */ text=readln(source) /* Nächste Zeile lesen */ do i=1 to words(text) wort1 = word(text,i) /* einzelnen Wörter holen */ wort2= word(text,i+1) if mode=2 then wort=wort1 || " " || wort2 if mode=1 then wort=wort1 address FLM lookword wort /* Wort suchen */ address FLM found /* steht Wort im Wörterbuch ? */ gefunden = RESULT if mode=2 & gefunden>0 then do wort=wort1 address FLM lookword wort address FLM found gefunden = RESULT end else do if mode=2 then i=i+1 end if gefunden = 0 then do /* Wort wurde gefunden */ address FLM takeword WriteCh(dest,RESULT) /* 1. Übersetzung schreiben */ end else do /* Wort wurde nicht gefunden */ WriteCh(dest,"[" || wort || "]") /* Original-Wort schreiben*/ end WriteCh(dest," ") /* Leerzeichen zwischen den Wörtern */ end WriteLn(dest, "") /* Enter schreiben*/ end CLOSE(source) /* Quell-Datei schließen */ CLOSE(dest) /* Ziel-Datei schließen */ if gestartet = 1 then do /* wurde FLM durch das Script gestartet, so wird es nun auch wieder beendet */ address FLM QUIT end exit