PROCEDURE beginnt und RETURN beendet das Unterprogramm. Zum Beginn sind alle in dem Unterprogramm vorkommenden Variablen mit vorangestelltem LOCAL aufgelistet. Hiermit ist sichergegeben, daß diese Variablen lokal behandelt werden und außerhalb der Procedure nicht verändert werden können. Die Befehle CLS, PRINT, FORM INPUT habe ich weiter oben beim
Hauptprogramm schon erläutert und verzichte hier deshalb darauf. Durch den Funktionsaufruf FN wird der GEM-Fileselector aufgerufen. Der erste Äbergabeparameter kann ein Text (auch leer) in Anführungszeichen oder eine String-Variable sein. Sie legt bei neueren AES-Versionen fest, welcher Text in der Kopfzeile des Fileselectors stehen soll; bei älteren AES-Versionen bleibt diese Variable unberücksichtigt, sie muß aber dennoch übergeben werden. Der zweite Parameter legt die Dateiendung fest, die die Datei haben soll; falsch eingegebene Endungen werden durch sie ersetzt. Der dritte Parameter stellt einen vorgegebenen Dateipfad ein, er kann aber auch frei gelassen ("") werden. An vierter Stelle kann TRUE zur Äberprüfung auf Vorhandensein eingegeben werden. Soll nicht geprüft oder eine Datei gesichert werden, muß hier FALSE stehen. Die fünfte und letzte Variable (Wichtig: Hier muß eine Variable und keine Zeichenkette stehen!)
kann einen vorgegebenen Dateinamen enthalten. Sie enthält nach dem Verlassen des Fileselectors auch den ausgewählten Dateinamen. Die Funktion gibt den kompletten ausgewählten Dateipfad mit Dateinamen zurück, wird er nicht wie im Beispielprogramm gebraucht, so kann hier einfach die Tilde (~) stehen. Die Alternative "IF dateiname$<>""...ENDIF" im fragt ab, ob ein Dateiname ausgewählt/eingegeben wurde. Die zweite Alternative kontrolliert über den Befehl EXIST, ob die ausgewählte Datei schon existiert oder nicht. Existiert die Datei, so wird mittels dem Befehl
"OPEN "A",#1,dateipfad$" die vorhandene Datei über den Kanal 1 zum Anhängen der zu speichernden Daten geöffnet. Existiert die Datei nicht, so wird die Datei neu erstellt und ebenfalls über den Kanal 1 zum schreiben geöffnet. Wichtig ist hierbei, daß man niemals einen Kanal zweimal öffnet, dieses würde zum Programmabsturz führen (der Drucker benutzt Kanal 10).
Als nächsten werden im Programm mit dem Befehl "PRINT #n,variable$" die Daten gespeichert. Das n (ganzzahliger Wert) steht hier für den zuvor geöffneten Kanal. Die Variable muß eine String-Variable sein. Nach dem Speichern der drei Stringinhalte (jeder in eine eigene Zeile) wird der
Dateikanal mit dem Befehl CLOSE #1 geschlossen.
GFA BASIC Tips & Tricks - 6 / 9

|