Seite 1 von 6
ASCII-dateiinhalt in verschiedene strings einlesen
Verfasst: 16.06.2009 13:26
von PureBasic09
hi leute
hab mal ne ganz knifflige frage, mit der ich mich schon ne zeitlang befasse:
ich möchte den inhalt einer ascii datei in verschiedene strings einlesen.
diese strings sollen dann in einer odbc-datenbank verwendet werden
ich hoffe ihr könnt mir ein bisschen helfen
mfg PureBasic09
Verfasst: 16.06.2009 13:30
von STARGÅTE
solange die Datei keine echt NULL enthält, kannst du doch diese Datei einfach mit ReadString einlesen.
Und wenn sie Nullen drin halt, kannst du sie eh nicht in Strings lesen, da diese dann abgeschnitten werden.
Um Strings zu Teilen kannst du zB: Mid() oder StringField() nutzen
Willst du sofort alles einlesen, verwende ReadData() und erzeuge vorher einen String mit der länge der Datei, in dessen Pointer du dann einliest
Verfasst: 16.06.2009 13:32
von Kaeru Gaman
per
ReadString() in eine
LinkedList einlesen, und dann in die Datenbank, oder direkt in die Datenbank, je nachdem.
Verfasst: 16.06.2009 13:35
von PureBasic09
wenn ich wüsste, wie ich das umsetzen kann.....
bin ja auch erst seit 2 wochen an PB dran
Verfasst: 16.06.2009 13:43
von PureBasic09
gut, ich habe nen quellcode gefunden, indem ich mir einen teil der ascii datei im debugger anschauen kann
aber wie bringe ich jetzt teile dieser datei, in von mir bestimmte strings?
Code: Alles auswählen
If ReadFile(0, "Text.txt") ; wenn die Datei geöffnet werden konnte, setzen wir fort...
While Eof(0) = 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
Debug ReadString(0) ; Zeile für Zeile im Debugger-Fenster anzeigen
Wend
CloseFile(0) ; schließen der zuvor geöffneten Datei
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
Verfasst: 16.06.2009 14:17
von sibru
Hallo PureBasic09,
Mir ist nicht ganz klar, was Du mit "DateiTeilen" meinst, ich geh´ jetzt einfach mal von Textzeilen aus...
Du bist schon auf dem richtigen Weg:
Code: Alles auswählen
If ReadFile(0, "Text.txt") ; wenn die Datei geöffnet werden konnte, setzen wir fort...
While Eof(0) = 0 ; sich wiederholende Schleife bis das Ende der Datei ("end of file") erreicht ist
Zeile$ = ReadString(0) ; <-- Datei-Zeile in String-Variable übertragen
Debug Zeile$ ; Zeile im Debugger-Fenster anzeigen
;wenn´s in ´ne LL soll:
AddElement(FileLine$()) ; neues LL-Element anlegen...
FileLine$() = Zeile$ ; ...und belegen
Wend
CloseFile(0) ; schließen der zuvor geöffneten Datei
Else
MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
Viel Erfolg !!!
Verfasst: 18.06.2009 11:32
von PureBasic09
ich glaube ich hab mich falsch ausgedrückt
ich möchte von mir bestimmte zeilen aus einer *.PAU datei (ascii) in strings reinladen, um diese dann später in meine schon fertige DB-reinladen
(ODBC Datenbank)
aber ich hab keinen blassen schimmer wie das gehen soll
in der hilfe gibt es ja folgenden quellcode:
Code: Alles auswählen
Ergebnis$ = StringField(String$, Index, Trennzeichen$)
aber damit weiß ich net viel anzufangen.
was ich aber davon weiß, ist, das bei
String$ mein gewünschter string reinkommt und bei
Trennzeichen$ das typische ascii-trennzeichen
"|" reinkommt
Verfasst: 18.06.2009 11:39
von sibru
Sieh´ dir das mal an:
Code: Alles auswählen
String$="eins|zwei|drei|vier|fünf"
For Teil = 1 To 5
Debug StringField(String$,Teil,"|")
Next
Verfasst: 18.06.2009 11:41
von PureBasic09
wo einbinden?
Verfasst: 18.06.2009 11:47
von PureBasic09
ich werde es mal konkretisieren:
hier ein auszug aus der *.PAU-datei
PAU
aes-k070136-a20
PM500_Z00....
04.06.2009
1|aes-pm500_z005|Kubus|1|98
2|aes-pm500_z006|Platte|1|96
PAU-END
aes-k070136-a20 = 1.String
PM500_Z00.... = 2.String
04.06.2009 = 3. String
1,2 = 4. String
aes-pm500_z005, aes-pm500_z006 = 5. String
Kubus, Platte = 6. String
1 = 7. String
98, 96 = 8. String
so meinte ich es.
hoffentlich versteht man mich nu, was ich meine *hope*