DEFFN pfad$(a$)=LEFT$(a$,RINSTR(a$,"\")) FUNCTION fileselectpro$(titel$,endung$,new_pfad$,pruef!,VAR new_file$) ' MODUL fileselect (Teil 1) ' Copyright by Torsten Runge (Version 1.3 vom 04.02.1997) ' ' Parameter: ' titel$ Titelzeile der Fileselectbox ' endung$ Dateiendung die angehängt wird oder eine ' falsche ersetzt ' new_pfad$ Pfad kann hiermit übergeben werden ' Backslash \ sollte letztes Zeichen sein ' pruef! BOOLEAN, soll geprüft werden, ob Datei vorhanden ist? ' new_file$ Dateiname kann hiermit übergeben werden und ' steht nach Funktionsende aktualisiert darin ' ' Rückgabe ' fileselectpro Ausgewählter Pfad ' ' Lokale Variable: LOCAL button& ! Exit-Button der FileSelectBox, enthält ' 0 für ABBRUCH oder 1 für OK/Return LOCAL al_button& ! Exit-Button der AlertBox LOCAL punkt% ! Stelle des Extensionspunktes LOCAL suche! ! Wurde eine Suche ausgeführt ' TRUE es wurde gesucht suche!=FALSE ! FALSE es wurde nicht gesucht ' ' Rechtecklisten sperren und kontrolle beim Proggi: ~WIND_UPDATE(1) ~WIND_UPDATE(3) ' ' Endung an den Pfad anhängen: IF MID$(new_pfad$,LEN(new_pfad$),1)<>"\" new_pfad$=new_pfad$+"\" ENDIF new_pfad$=UPPER$(new_pfad$+"*."+endung$) ' ' Dateiauswahl mit Suchhilfe REPEAT ' Ist neues AES vorhanden? IF ((INT{{ADD(GB,4)}})>=&H140 AND (INT{{ADD(GB,4)}})<&H200) OR (INT{{ADD(GB,4)}})>=&H300 ' neueres AES vorhanden... ' ' ...zur Externen Fileselectbox: ~FN fsel_exinput(titel$,new_pfad$,new_file$,button&) ' ' Leider nicht vorhanden: ELSE ' kein neueres AES vorhanden... ' ' ...Fileselectbox des AES aufrufen: ~FSEL_INPUT(new_pfad$,new_file$,button&) ENDIF ' ' IF pruef!=FALSE AND new_file$<>"" ' Damit Dateisuchhilfe nicht anspruch genommen wird, ' Dateiende auf Richtige Endung setzen... ' punkt%=INSTR(new_file$,".") IF punkt%>0 new_file$=MID$(new_file$,1,punkt%)+endung$ ELSE new_file$=new_file$+"."+endung$ ENDIF ENDIF ' ' Dateisuchhilfe: IF endung$<>"*" AND pruef!=TRUE IF (button&=1) AND (UPPER$(MID$(new_file$,INSTR(new_file$,"."),LEN(endung$)+1))<>"."+UPPER$(endung$)) ' OK wurde angewählt und es steht keine Dateiendung im Dateinamenfeld... ' ' ...DTA setzen: ~FSETDTA(BASEPAGE+128) ' ' ...erste Datei die zutrifft suchen: IF FSFIRST(@pfad$(new_pfad$)+new_file$+"*."+endung$,0)=0 ' Es wurde eine Datei gefunden... ' ' ...gefundenen Dateinamen in Variable schreiben: new_file$=CHAR{BASEPAGE+158} ' ' ...Schleifenabbruch verhindern: suche!=TRUE ELSE ' Es wurde keine Datei gefunden... ' ' ...Alert: Nachfragen, ob Weiter oder Abbruch: ALERT 1,"Bei der Suche nach einer Datei|mit der Endung '."+endung$+"'|wurde keine Datei mit Ihren|Angaben gefunden!",1,"Weiter|Abbruch",al_button& IF al_button&=2 ' Abbruch: button&=0 ENDIF ENDIF ELSE ' ...Schleifenabbruch freigeben: suche!=FALSE ENDIF ENDIF UNTIL (button&=0) OR (suche!=FALSE AND UPPER$(MID$(new_file$,INSTR(new_file$,"."),LEN(endung$)+1))="."+UPPER$(endung$)) OR (endung$="*" AND button&=1) ' UNTIL (button&=0) OR (suche!=FALSE AND UPPER$(MID$(new_file$,INSTR(new_file$,"."),LEN(endung$)+1))="."+UPPER$(endung$)) OR (endung$="*" AND button&=1) OR (suche!=FALSE AND new_file$="") ' ' Kontrolle beim AES und Rechtecklisten freigeben: ~WIND_UPDATE(2) ~WIND_UPDATE(0) ' ' EXIT-Button auswerten: IF button&=0 ' Abbruch-Button wurde angewählt... ' ' ...Leerstring zurückgeben: RETURN "" ELSE ' OK-Button wurde angewählt... ' ' IF pruef!=TRUE ' Datei soll auf existens überprüft werden... ' IF EXIST(@pfad$(new_pfad$)+new_file$)=TRUE ' Die Datei existiert... ' ' ...Pfad und Dateinamen zurückgeben: RETURN @pfad$(new_pfad$)+new_file$ ELSE ' Die Datei existiert nicht... ' ' ...Warnmeldung ausgeben: al_button&=FORM_ALERT(1,"[1][| TeleComp-Fileselectmodul| | Die Datei ist nicht | vorhanden!][Abbruch]") ' ' ...Leerstring zurückgeben: RETURN "" ENDIF ELSE ' Datei soll nicht auf existens überprüft werden... ' ' ...Pfad zurückgeben: RETURN @pfad$(new_pfad$)+new_file$ ENDIF ENDIF ENDFUNC FUNCTION fsel_exinput(titel$,VAR fsel_pfad$,fsel_file$,button&) ' MODUL fileselect - Teil 2 ' (nur neueres AES!) ' ' Parameter: ' titel$ Titelzeile der Fileselectbox ' fsel_pfad$ Pfad kann hiermit übergeben werden und ' steht nach Funktionsende aktualisiert darin ' fsel_file$ Dateiname kann hiermit übergeben werden und ' steht nach Funktionsende aktualisiert darin ' button$ hiermit wird der EXIT-Button zurückgegeben ' ' Rückgabe ' fsel_exinput Ausgewählter Pfad ' ' Speicherplatz belegen: $F% ' ' Titel auf Format bringen: titel$=MID$(titel$,1,MIN(LEN(titel$),29))+CHR$(0) ' ' Pfade und Dateinamen auf Format bringen: fsel_pfad$=fsel_pfad$+CHR$(0)+SPACE$(400) fsel_file$=fsel_file$+CHR$(0)+SPACE$(150) ' ' AES-Ausführung: GCONTRL(0)=91 GCONTRL(1)=0 GCONTRL(2)=2 GCONTRL(3)=3 GCONTRL(4)=0 ' ADDRIN(0)=V:fsel_pfad$ !Pfad ADDRIN(1)=V:fsel_file$ !Datei ADDRIN(2)=V:titel$ !Titel ' GEMSYS ' ' Pfad und Dateiname zurückübergeben: fsel_pfad$=CHAR{V:fsel_pfad$} !Pfad fsel_file$=CHAR{V:fsel_file$} !Dateiname ' ' EXIT-Button: button&=GINTOUT(1) !Abbruch=0, OK=1 ' RETURN GINTOUT(0) !Fehlercode ENDFUNC