Kurs:FreeBASIC/Lerngruppen/Files-Group

Aus Wikiversity
Thema Mit Dateien arbeiten
Bearbeitet 04.07.2008 bis 28.04.2024
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 Definitionen[Bearbeiten]

IO-Ströme

Ich weiß nicht, ob FB das beherrscht.

Hinweis, Anregung, Tipp[Bearbeiten]

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

Notizen[Bearbeiten]

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 schreiben[Bearbeiten]
'Ich suche noch ein passendes Beispiel bei den open-source Projekten...

Es gibt Open-Source-Projekte, das hilft.

Befehl FreeFile[Bearbeiten]

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 ausgeben[Bearbeiten]
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.

Ressourcen[Bearbeiten]

Kommentar[Bearbeiten]

...