Kurs:FreeBASIC/Lerngruppen/Files-Group
Aus Wikiversity
| Thema | Mit Dateien arbeiten |
| Bearbeitet | 04.07.2008 bis 25.11.2009 |
| Material | Befehlsreferenz |
| Kommentar | Hier wird noch gearbeitet. |
Inhaltsverzeichnis |
[Bearbeiten] Was haben wir gemacht?
- Wir schauen uns an, wie man Dateien öffnen und schließen und Daten dort speichern kann.
- Wie wollen uns anschauen, wie man mit Datenbanken (Text.txt) arbeiten kann.
[Bearbeiten] Wichtige Begriffe und Definitionen
- IO-Ströme
Ich weiß nicht, ob FB das beherrscht.
[Bearbeiten] Hinweis, Anregung, Tipp
In diesem Bereich wird noch gearbeitet. Das FreeBASIC-Portal bietet hier wenig Hilfen. --Michael Reschke 16:52, 1. Jul. 2008 (CEST)
[Bearbeiten] Notizen
[Bearbeiten] Was enthält die Datei Text.txt?
Ich habe ein Verzeichnis Daten in meinem Ordner Projekte angelegt und dort eine Datei Text.txt mit folgendem Inhalt abgelegt:
Spalte 1, Spalte 2, Spalte 3, Spalte 4 Zeile 1, Zeile 2, Zeile 3, Zeile 4 Datum 1, Datum 2, Datum 3, Datum 4 Wenn 1, Dann 2,, Sonst 4
[Bearbeiten] Was will ich eigentlich machen?
- Eine Datei öffnen...
- Daten aus der Datei holen und an das Programm übergeben...
- Daten im Programm ändern...
- Daten in eine Datei schreiben und dort ggf. Daten überschreiben...
- Eine Datei schließen...
[Bearbeiten] Welche Befehle benötige ich?
Ich meine mich zu erinnern in Kurs II oder III entsprechende Code-Schnipsel gesehen zu haben.
[Bearbeiten] Eigentliche Notizen (neu nach oben!)
[Bearbeiten] Datei lesen und schreiben
'Ich suche noch ein passendes Beispiel bei den open-source Projekten...
Es gibt Open-Source-Projekte, das hilft.
[Bearbeiten] Befehl FreeFile
Beispiel 1
f = FREEFILE OPEN "file.ext" FOR INPUT AS #f
Beispiel 2
Dim As Integer DateiNummer = FreeFile OPEN "file.ext" FOR INPUT AS #DateiNummer
Der Befehl leistet: Gibt die nächste unbenutzte Dateinummer zurück.
"Unser" Programm mit dem FreeFile-Befehl
Dim As Integer DateiNummer = FreeFile Dim As String text, t '-- Datei schreiben -- CLS OPEN "c:\Temp\tmp.txt" FOR OUTPUT AS DateiNummer INPUT "Gib Deinen Namen ein "; text WRITE #DateiNummer, text CLOSE #DateiNummer '--- Datei lesen --- OPEN "c:\Temp\tmp.txt" FOR INPUT AS #DateiNummer INPUT #DateiNummer, t CLOSE #DateiNummer PRINT PRINT "Du hast Folgendes eingegeben: "; t SLEEP END
[Bearbeiten] Datei lesen und schreiben (Dateiinhalt wird überschrieben)
DIM text AS String DIM t AS String '-- Datei schreiben -- CLS OPEN "c:\Temp\tmp.txt" FOR OUTPUT AS #1 INPUT "Gib Deinen Namen ein "; text WRITE #1, text CLOSE #1 '--- Datei lesen --- OPEN "c:\Temp\tmp.txt" FOR INPUT AS #1 INPUT #1, t CLOSE #1 PRINT PRINT "Du hast Folgendes eingegeben: "; t SLEEP END
Es gibt eine Eingabe, die dann in die Datei tmp.txt geschrieben wird. Existiert die Datei noch nicht, wird sie angelegt. Aus der Datei wird auch wieder gelesen.
Problem: Der Inhalt der Datei wird jeweils überschrieben.
Beobachtung: Bei der Eingabe Nachname, Vorname (Bsp.!) wird nur Nachname gespeichert.
Quelle: SelfQB
[Bearbeiten] Datei öffnen und Zeile 1 auf dem Bildschirm ausgeben
REM Das Programm soll die Datei text.bas öffnen und lesen. REM Erster Schritt: Komplett öffnen und komplett auf dem Bildschirm ausgeben Dim Zeile As String, DNr As Integer = FREEFILE OPEN "Text.txt" FOR INPUT AS #DNr LINE INPUT #DNr, Zeile PRINT Zeile CLOSE #DNr SLEEP
Das Programm öffnet die Datei Text.txt und liest die erste Zeile ein. Die erste Zeile wird an die Variable (String) Zeile übergeben und anschließend ausgegeben.
[Bearbeiten] Ressourcen
[Bearbeiten] Kommentar
...