Kurs:FreeBASIC/Lerngruppen/Files-Group

Aus Wikiversity

Wechseln zu: Navigation, Suche
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

Bulbgraph.svg

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

...

Persönliche Werkzeuge