Kurs:FreeBASIC/Lerngruppen/Files-Group

Thema Mit Dateien arbeiten
Bearbeitet 04.07.2008 bis 29.03.2023
Material Befehlsreferenz
Kommentar Hier wird noch gearbeitet.

Was haben wir gemacht?Bearbeiten

  • 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.

Wichtige Begriffe und DefinitionenBearbeiten

IO-Ströme

Ich weiß nicht, ob FB das beherrscht.

Hinweis, Anregung, TippBearbeiten

 

In diesem Bereich wird noch gearbeitet. Das FreeBASIC-Portal bietet hier wenig Hilfen. --Michael Reschke 16:52, 1. Jul. 2008 (CEST)

NotizenBearbeiten

Was enthält die Datei Text.txt?Bearbeiten

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

Was will ich eigentlich machen?Bearbeiten

  • 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...

Welche Befehle benötige ich?Bearbeiten

Ich meine mich zu erinnern in Kurs II oder III entsprechende Code-Schnipsel gesehen zu haben.

Eigentliche Notizen (neu nach oben!)Bearbeiten

Datei lesen und schreibenBearbeiten
'Ich suche noch ein passendes Beispiel bei den open-source Projekten...

Es gibt Open-Source-Projekte, das hilft.

Befehl FreeFileBearbeiten

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
Datei lesen und schreiben (Dateiinhalt wird überschrieben)Bearbeiten
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

Datei öffnen und Zeile 1 auf dem Bildschirm ausgebenBearbeiten
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.

RessourcenBearbeiten

KommentarBearbeiten

...