Wie kann ich eine Datei einlesen und Werte ausgeben
Übersicht

SchoppyBetreff: Wie kann ich eine Datei einlesen und Werte ausgeben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, habe erst vor kurzer zeit angefangen zu programieren.Habe folgendes Problem:
Ich schreibe in eine Datei mit Write Line einige werte.Dieser Datei füge ich ständig weitere Werte hinzu,jeweils in der nächsten zeile.Das ganze sieht so aus: Function action() fs = FileSize("datenbank.txt") ; Dateigröße feststellen Datei$= OpenFile("datenbank.txt") ;Datei öffnen SeekFile(Datei$,fs) ; an das Ende der Datei "springen" Text1$=TextFieldText$ (field1) ;Text aus textfield speichern Text2$=TextFieldText$ (field2) ;Text aus einem zweiten textfield speichern WriteLine (Datei$,Chr(13)+Text1$+Text2$) ;texte aus beiden textfields in datei schreiben CloseFile Datei$ End Function ;bis hier hin funktioniert es ;_-----------------------------------------------Laden---------------------------- Function laden() daten=ReadFile("datenbank.txt") Repeat Wert1$=ReadLine$(daten) Wert2$=ReadLine$(daten) AddGadgetItem infolistbox, Wert1$ ;hier soll der wert1 in einer Listbox ausgegeben werden CloseFile daten Forever CloseFile daten End Function mit welchen Befehl kann ich die gesamte datei einlesen und jeweils den ersten Wert in der Listbox ausgeben, desweiteren den jeweils zugehörigen wert2 durch anklicken in der listbox des ersten wertes in einer weiteren listbox ausgeben ? Danke schon mal im voraus Code: [AUSKLAPPEN] |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eof ist die Lösung. Und warum eigentlich CloseFile in die Schleife? | ||
vertex.dreamfall.at | GitHub |
Schoppy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke erstmal, Eof ist nicht schlecht, aber jetzt gibt er mir in der listbox nur ein kästchen aus und mit die Online Hilfe bringt mich auch irgendwie nicht weiter. hast du vielleicht einen Code ?Es sieht jetzt folgendermassen aus:
;_-----------------------------------------------Laden---------------------------- Function laden() Datei$="datenbank.txt" daten=ReadFile(Datei$) While Not Eof(daten) Wert1$=ReadLine$(daten) Wert2$=ReadLine$(daten) Wend AddGadgetItem infolistbox, Wert1$ ;hier soll der wert1 in einer Listbox ausgegeben werden Forever CloseFile daten End Function ;----------------------------------------------------------------- die Datei Datenbank.txt sieht so aus: Sie enthällt 3 Einträge xyzAction abcAdventure iuzEgo ;-------------------- |
||
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
also du shreibst zuerst eine Zeile, und liest dann zwei Zeilen aus. Das kann ja nicht gehen. Ich würds so machen (Nicht getestet!!!): Code: [AUSKLAPPEN] dim eintrage$(100) Function action() fs = FileSize("datenbank.txt") ; Dateigröße feststellen Datei$= OpenFile("datenbank.txt") ;Datei öffnen SeekFile(Datei$,fs) ; an das Ende der Datei "springen" Text1$=TextFieldText$ (field1) ;Text aus textfield speichern Text2$=TextFieldText$ (field2) ;Text aus einem zweiten textfield speichern WriteLine (Datei$,Text1$+"#"Text2$) ;texte aus beiden textfields in datei schreiben CloseFile Datei$ End Function Function laden() daten=ReadFile("datenbank.txt") while not(eof(daten)) Wert$=ReadLine$(daten) ; Schaut wo das #-Zeichen ist mit instr und liest dann die beiden werte aus wert1$ = left(wert,instr(wert,"#")) wert2$ = Right(wert,Len(wert)-,instr(wert,"#")) Eintrage(x) = wert2$ x = x + 1 AddGadgetItem infolistbox, Wert1$ ;hier soll der wert1 in einer Listbox ausgegeben werden wend CloseFile daten End Function Zitat: mit welchen Befehl kann ich die gesamte datei einlesen und jeweils den ersten Wert in der Listbox ausgeben, desweiteren den jeweils zugehörigen wert2 durch anklicken in der listbox des ersten wertes in einer weiteren listbox ausgeben ? Also, wenn ich das richtig verstanden habe, soll in der LB1 alle ersten Einträge angezeigt werden. Wenn ich jetzt einen in der LB1 auswähle, denn soll eine 2. LB (LB2) angezeigt werden, die dann den 2. Wert enthählt. Also, du musst prüfen ob ein eintrag ausgewählt wird (mit event). dann schaust du welcher, und zeigst dann in der LB2 diesen an. Natürlich musst du die 2. Werte abgespeichert haben (sie Beispiel oben). Hier mein Vorschlag(nicht getestet): Code: [AUSKLAPPEN] if WaitEvent() = $401 and Eventsource() = LB1 then ClearGadgetItems LB2 AddGadgetItem LB2,Eintrage(SelectedGadgetItem(LB1)) end if Ich hoffe ich konnte dier helfen cu simi |
||
Schoppy |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() |
||
dubitat |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gibt da einen befehl in der onlinehilfe unter string, wo drinsteht, wie man einen string nach einem zeichen/zeichenfolge durchsuchen kann! | ||
Erare humanum est - Irren ist Menschlich |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group