|
|
|
Startseite News   NDR-NKC Geräte Z80 Geräte 68000 Geräte 8088NKC Emulator Z80 Section Baugruppen ROM's Software68000 Section Baugruppen ROM's PASCAL/S Software CP/M 68K8088 Section Baugruppen DownloadsBussysteme Stromversorgung Input / Output Grafikkarten Speicherkarten Massenspeicher Weitere Baugruppen Projekte Dokumentation Datenblätter Glossar Portraits Links Impressum |
Arbeiten mit DateienIn diesem Beitrag wird das Arbeiten mit Dateien unter CBASIC anhand von nützlichen Beispielen erläutert. Weitere BeiträgeVor- und Nachteile des CBASIC Compilers Lesen und Erstellen von TextdateienDas erste Programm entfernt alle nicht notwendigen Leerzeichen am Ende von Zeilen in einer Textdatei. Das ist nützlich, da der Editor des Grundprogramms beim Löschen von Zeichen mit CTRL+G die Zeilenlänge nicht verkürzt. Als Nebeneffekt bei der Neuerstellung der Textdatei werden auch Überreste alten Textes am Ende der Datei entfernt. Das Programm TRIM.BAS beginnt mit der Analyse der Kommandozeilen-Parameter.
Es folgt der Test, ob die Quelldatei vorhanden ist
Jetzt wird die Quelldatei geöffnet und die Zieldatei angelegt. Falls die Zieldatei schon vorhanden ist, wird sie ohne Warnung überschrieben.
Zum Erkennen des Dateiendes der Quelldatei und zum Abfangen eventuell auftretender Fehler beim Schreiben dienen die folgenden beiden Zeilen.
Jetzt erfolgt die eigentliche Verarbeitung. In der äußeren WHILE-Schleife wird die Quelldatei zeilenweise eingelesen, bis das Ende der Datei durch IF END #1 erkannt wird. Die innere WHILE-Schleife entfernt Leerzeichen am Ende der Zeile. PRINT USING schreibt de bearbeitete Zeile in die Zieldatei.
Damit ist die Verarbeitung abgeschlossen und die Dateien können wieder geschlossen werden.
Abschließend noch die Ausgabe von Fehlermeldungen, die am Ende des Quelltextes zusammengeführt sind. 9000 PRINT "Usage: TRIM Source Destination"; : STOP 9010 PRINT "Source file not found"; : STOP 9020 PRINT "Write error, disk full?"; : STOP 9030 PRINT "Source and Destination must be different files"; : STOP Ein kleines TelefonbuchZur Demonstration der Fähigkeiten von CBASIC auf satzbasierte Dateien mit fester Satzlänge zuzugreifen hier ein kleines Programm zur Verwaltung von Telefonnummern. Das Programm kann nach Bedarf angepasst oder erweitert werden. Zu beachten ist jedoch, dass bereits erstellte Datendateien ungültig werden, wenn die Satzlänge oder die Anzahl der Felder eines Satzes geändert werden. Zu Beginn des Programms wird die Daten-Datei geöffnet und das Menü ausgegeben. In einer Endlosschleife wird die Tastatur abgefragt und je nach Tastendruck das gewünschte Unterprogramm aufgerufen.
Hier die beiden Unterprogramme zur Darstellung der Menüzeile und zum Öffnen bzw. Anlegen der Daten-Datei. Die Satzlänge ist auf 128 Byte eingestellt. Es gibt in diesem Beispiel keine Kontrolle, ob die eingegebenen Daten in die definierte Satzgröße passen. Zu lange Datensätze führen zu einem Laufzeitfehler.
In diesem Unterprogramm werden neue Kontaktdaten abgefragt und in der Datenbank gespeichert. Die Schleife sorgt dafür, dass eventuell gelöschte Einträge wiederverwendet werden. Die Variable X% (Erster Eintrag eines Datensatzes) enthält 0 für aktive Datensätze und Werte ungleich 0 für gelöschte Datensätze.
Das Unterprogramm durchsucht die gesamte Datenbank nach einem Namen oder einer Telefonnummer und gibt die passenden Einträge aus. Es werden auch Teile von Namen und Telefonnummern gefunden, die Groß- und Kleinschreibung wird ignoriert.
Das Unterprogramm dient zum Löschen eines Eintrages anhand der Satznummer. Die Satznummern werden bei der Suche vor den Ergebnissen angezeigt. Eine Eingabe von 0 als Satznummer bricht den Vorgang ab.
Dieses Unterprogramm listet alle aktiven Kontakte auf der Konsole. Eine Erweiterung zur Ausgabe auf dem Drucker ist relativ einfach umzusetzen.
Den Abschluss des kleinen Programms bildet das Schließen der Datenbank.
AchtungDie Datei TELE.DAT, in der die Namen und Telefonnummern abgelegt sind, darf nicht mit dem Editor geöffnet werden, da der Editor des Grundprogramms die Struktur verändert. Dies führt zu einem Laufzeitfehler.
|