ASCII-dateiinhalt in verschiedene strings einlesen

Anfängerfragen zum Programmieren mit PureBasic.
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

ASCII-dateiinhalt in verschiedene strings einlesen

Beitrag 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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

per ReadString() in eine LinkedList einlesen, und dann in die Datenbank, oder direkt in die Datenbank, je nachdem.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag von PureBasic09 »

wenn ich wüsste, wie ich das umsetzen kann.....

bin ja auch erst seit 2 wochen an PB dran
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag 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
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Beitrag 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 !!!
Bild Bild
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag 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
sibru
Beiträge: 265
Registriert: 15.09.2004 18:11
Wohnort: hamburg

Beitrag 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
Bild Bild
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag von PureBasic09 »

wo einbinden?
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag 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*
Antworten