$if 0 Ntzliche PowerBasic-Funktion ----------------------------- Programme, die eine Datenausgabe ber die blichen DOS-Funktionen vornehmen, so z.B. Filterprogramme, sind in PowerBasic schnell erstellt. Ueber den Funk- tionsumfang dieser Programmiersprache, vor allem der Version 3.0, lt sich nicht klagen. Trotzdem: kleine Verbesserungen knnen nie schaden. So vermit man leider eine Routine, die ermittelt, ob fr die Ausgabe des Programms in der Kommandozeile eine Umleitung (Zeichen >, >> oder |) angefordert wurde. Das nachfolgende Demoprogramm REDIR.BAS enthlt eine solche Funktion ("isRedirected"), Typ Boolean. Sie liest dazu aus dem ProgrammSegmentPrefix (PSP) die Adresse der "JobFileTable" aus. Es handelt sich hierbei um einen Datenbereich im PSP, in den DOS die vom Pro- gramm geffneten Dateihandles eintrgt. Die ersten beiden Eintrge beziehen sich auf die "Datei" CON, das Ein-/Ausgabegert. Wurde beim Aufruf des Pro- gramms eine Umleitung angegeben, unterscheiden sich die beiden Eintrge, an- dernfalls sind sie gleich. Zum Testen rufen Sie REDIR.EXE auf, einmal mit Umleitung, einmal ohne! $endif 'Programm: REDIR.BAS 'PSprache: PowerBasic 'Pr Autor: Gerhard Frey ' ' function isRedirected local local adr?? '(Hilfsvariable ! mov ah,&H51 ;(Funktion nach AH ! int &H21 ;(DOS-Call ! mov adr??,bx ;(PSP-Adresse def seg=adr?? '(setzen 'An Offset &H18 (JobFileTable) die 'zwei ersten Eintrge vergleichen if peek(&H18)=peek(&H19) then isRedirected=0 else isRedirected=-1 end if end function print "Ausgabe "; if not isRedirected then print "nicht "; end if print "umgeleitet" end