Seite 1 von 1
Textdatei mit Semikolon getrennt, das in AddGadgetItem
Verfasst: 01.09.2009 00:35
von Micro
Hallo zusammen,
manchmal sehe ich den Wald vor lauter Bäume nicht mehr...
Ich hab' ne Textdatei, wo mehrere Werte getrennt mit einem Semikolon hintereinander stehen. Zeile für Zeile wiederholen sich die Werte in ihrer Anordnung.
Code: Alles auswählen
470;10014316712;Text1;10.6593;27.7761;1
472;10014316727;Text2;7.4322;26.1325;3
....
Das möchte ich auslesen und in ein AddGadgetItem übergeben. Hab' schon mit "StringField" experementiert, klappt aber nicht:
Code: Alles auswählen
AddGadgetItem(1, -1, StringField(ReadString(0), 1, ";") + Chr(10) + StringField(ReadString(0), 2, ";") + Chr(10) + StringField(ReadString(0), 3, ";") + Chr(10) + StringField(ReadString(0), 4, ";") + Chr(10) + StringField(ReadString(0), 6, ";"))
Das Problem ist, das nur jede 6. Zeile im AddGadgetItem angezeigt wird!
Wer könnte mir mit einem Tipp helfen?
Gruß Micro
Verfasst: 01.09.2009 01:00
von jojo1541
Micro hat geschrieben:
Das möchte ich auslesen und in ein AddGadgetItem übergeben. Hab' schon mit "StringField" experementiert, klappt aber nicht:
Man kann nichts in AddGadgetItem einfügen, AddGadgetItem FÜGT in ein bestehendes Gadget ein.
In was für ein Gadget fügst du diesen Text eigentlich ein? EditorGadget? TextGadget?
Verfasst: 01.09.2009 01:09
von Micro
Jo,
jojo1541 hat geschrieben:Micro hat geschrieben:
Das möchte ich auslesen und in ein AddGadgetItem übergeben. Hab' schon mit "StringField" experementiert, klappt aber nicht:
Man kann nichts in AddGadgetItem einfügen, AddGadgetItem FÜGT in ein bestehendes Gadget ein.
In was für ein Gadget fügst du diesen Text eigentlich ein? EditorGadget? TextGadget?
in ein ListIconGadget. Hab' aber gerade noch ein wenig "gefummelt" und ne Lösung gefunden:
Code: Alles auswählen
If ReadFile(0, lesedatei.s)
While Eof(0) = 0
Text.s = ReadString(0)
Text1.s = StringField(Text.s, 1, ";")
Text2.s = StringField(Text.s, 2, ";")
Text3.s = StringField(Text.s, 3, ";")
Text4.s = StringField(Text.s, 4, ";")
Text5.s = StringField(Text.s, 5, ";")
Text6.s = StringField(Text.s, 6, ";")
AddGadgetItem(1, -1, Text1.s + Chr(10) + Text2.s + Chr(10) + Text3.s + Chr(10) + Text4.s + Chr(10) + Text6.s)
Wend
CloseFile(0)
EndIf
Das Problem lag' daran, das durch den wiederholten aufruf von ReadString() jedesmal eine neue Zeile eingelesen wird. Argl... Ich sag's ja, manchmal sehe ich den Wald vor lauter....
Vielen Dank für die Antwort.
Gruß aus Dortmund
Micro
Verfasst: 01.09.2009 01:12
von X360 Andy
Du liest ja auch 6 Zeilen bei bei einem Eintrag.
Bei jedem Readstring wird die nächste Zeile der datei gelesen.
Code: Alles auswählen
Zeile$ = ReadString(0)
For i = 1 To CountString(Zeile$,";")
Eintrag$ + StringField(Zeile$, i, ";") + Chr(10)
Next
AddGadgetItem(1, -1, Eintrag$))
Verfasst: 01.09.2009 01:50
von Micro
X360 Andy hat geschrieben:Du liest ja auch 6 Zeilen bei bei einem Eintrag.
Bei jedem Readstring wird die nächste Zeile der datei gelesen.
Code: Alles auswählen
Zeile$ = ReadString(0)
For i = 1 To CountString(Zeile$,";")
Eintrag$ + StringField(Zeile$, i, ";") + Chr(10)
Next
AddGadgetItem(1, -1, Eintrag$))
Jo, das sollte auch so sein.
In der Textdatei sind auch Daten vorhanden, die ich zu einem späteren Zeitpunkt brauche, aber nicht in der momentanen Darstellung.
Ich danke Dir! Du hast mir sehr geholfen, da ich die Funktion (alles anzeigen) sehr gut gebrauchen kann!!!
Gruß Micro
Verfasst: 01.09.2009 10:37
von Pelagio
Wenn ich es richtig verstanden habe wolltest Du so etwas:
Code: Alles auswählen
NewList FileData.s()
If ReadFile(0, lesedatei.s)
While Eof(0) = 0
AddElement(FileData())
FileData() = ReadString(0)
Wend
CloseFile(0)
EndIf
For n=0 To (ListSize(FileData())-1) Step 6
AddGadgetItem(1, -1, ReplaceString(FileData(), ";", Chr(10)))
Next n
Wobei Replacestring schon beim lesen der Daten aus der Datei angewandt werden kann, aber auch alles zusammen kann so gestaltet werden das es beim Laden der Daten schon ins ListIconView gestellt wird.
Code: Alles auswählen
If ReadFile(0, lesedatei.s)
While Eof(0) = 0
Zaehler + 1
Text$ = ReplaceString(ReadString(0),";", Chr(10))
If Zaehler<6
AddGadgetItem(21,-1, Text$)
Zaehler = 0
EndIf
Wend
CloseFile(0)
EndIf
Ich hoffe es hilft und es hat sich in der Schnelligkeit kein Fehler eingeschlichen.
