Kurs:FreeBASIC/Lerngruppen/Files-Group

Thema Mit Dateien arbeiten
Bearbeitet 04.07.2008 bis 21.11.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)

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

...