ASCII-dateiinhalt in verschiedene strings einlesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

PureBasic09 hat geschrieben:ich danke dir für deine bemühungen Little John, aber viel geholfen hat es net
sorry
nichts für ungut, PureBasic09, aber mir scheint, als hättest Du nicht
sonderlich grosse Lust, die Tipps der Kollegen auch nur ansatzweise zu
beachten.

Dein Problem wirst Du nur dann lösen können, wenn Du auch eine gehörige
Portion Eigeninitiative
an den Tag legst. Ich habe das Gefühl, als wärest Du
dazu nicht bereit.

Grüße ... Kiffi
a²+b²=mc²
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag von PureBasic09 »

dazu bereit bin ich, ja.
sonst würde ich ja net hier reinschreiben, denn ich hasse es eigentlich, mir quellcode von anderen zu "stehlen"

aber wenn ich net weiter komm, weil mein latein aufhört, naja.....dann hab ich hier rein geschrieben

und außerdem habe ich erst mit PureBasic angefangen und ich will nicht wissen, wie es bei anderen am anfang beim programmieren mit PB aussah......!!
PureBasic09
Beiträge: 33
Registriert: 16.06.2009 13:21
Wohnort: Sachsen

Beitrag von PureBasic09 »

oder hast du von anfang an alles sofort gewusst und verstanden??
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Hallo PureBasic09,

[X] bitte Mehrfachpostings vermeiden!
PureBasic09 hat geschrieben:oder hast du von anfang an alles sofort gewusst und verstanden??
selbstverfreilich nicht. Aber ich war willens, mir die Ratschläge der
Fortgeschrittenen durchzulesen und zu versuchen, sie zu verstehen. Ich war
auch willens deren Code auszuprobieren und zu verändern, um zu sehen,
was dann passiert.

Das scheint mir bei Dir nicht gegeben. Allein in diesem Thread stehen alle
Informationen, die Du benötigst, um eine PAU-Datei auszulesen.

Also: Ausprobieren! Und bei konkreten Problemen bekommst Du hier
umgehend Hilfe. Ein "aber viel geholfen hat es net" bringt uns alle nicht viel weiter.

Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, wie gesagt, daddel erstmal mit Datei auslesen und string manipulieren eine Weile rum, vergiß erstmal den PAUL

wenn du strings zerschnibbeln und durcheinanderwerfen kannst, wie du lustig bist,
wenn du das draufhast, dann setze dich noch mal mit Johnny's Code auseinander.

Deinen Rückfragen entnehme ich, dass du nicht nur gerade erst mit PureBasic angefangen hast,
sondern generell mit jeglicher Art programmierung...?

dann kann ich nur noch mal bekräftigen, in kleinen Schritten vorzugehen.

Kiffi hat geschrieben:[X] bitte Mehrfachpostings vermeiden!
genau.
beachte bitte den [EDIT] Button oben rechts an deinem Posting.
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 »

ich habe jetzt nochmal ein bisschen rumgetüftelt

hier iss der quellcode, womit ich die ASCII-Datei auslese:

Code: Alles auswählen

If ReadFile(0, arbeitsver.s+"AUFTRAGE.PAU")   ; 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
    temp_s.s  = ReadString(0)      ; Zeile für Zeile im Debugger-Fenster anzeigen
    If Trim(temp_s) =  "PAU" 
      zeilen.l = 1 
    ElseIf Trim(temp_s) =  "PAU-END"    
      For w = 1 To 8
        Debug arbauf_DB(w,0)
      Next
    Else
      Select zeilen
        Case  1  : arbauf_DB.s(1,0) = temp_s : zeilen+1
        Case  2  : arbauf_DB.s(2,0) = temp_s : zeilen+1 
        Case  3  : arbauf_DB.s(3,0) = temp_s : zeilen+1 
        Case  4 To 4000
          arbauf_DB(0,0) = temp_s
          arbauf_DB(4,0) = StringField(arbauf_DB(0,0),1,"|")
          arbauf_DB(5,0) = StringField(arbauf_DB(0,0),2,"|")
          arbauf_DB(6,0) = StringField(arbauf_DB(0,0),3,"|")
          arbauf_DB(7,0) = StringField(arbauf_DB(0,0),4,"|")
          arbauf_DB(8,0) = StringField(arbauf_DB(0,0),5,"|") 
          zeilen+1 
      EndSelect   
    EndIf
  Wend
  CloseFile(0)               ; schließen der zuvor geöffneten Datei
Else
  MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf
im debugger sieht dies dann wie folgt aus:

Code: Alles auswählen

aes-k070136-a20
PM500_Z00....
04.06.2009
2
aes-pm500_z006
Platte
1
96
nun habe ich ja schon die einträge für meine Datenbank vorbereitet
das sieht wie folgt aus:

Code: Alles auswählen

Command$ = "create TABLE arbauf_kopf_AB_DB (lnr integer Primary Key"
            Command$ + " , PAU_Nr_AB integer"
            Command$ + " , PAU_Bez_AB text"
            Command$ + " , PAU_Dtm_AB date "
            Command$ + " , PAU_ZNr_AB integer "
            Command$ + " , PAU_PPR_Nr_AB integer "
            Command$ + " , PAU_Wstck_AB text "
            Command$ + " , PAU_Art_AB integer "  
            Command$ + " , PAU_Stckz_AB integer " 
            Command$  = Command$ + ")"

    If DatabaseQuery(0,Command$)   
              While NextDatabaseRow(0): Wend 
            Else
              Debug "Command_db_arbauf_AB"
            EndIf

nun habe ich immer noch das problem, die info`s in strings reinzuladen
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

@purebasic09,

wenn man dir helfen soll, muß du auch die zugehörige Procedure "arbauf_DB()"

Code: Alles auswählen

arbauf_DB(w,0)
schon veröffentlichen.

Welche Datenbank willst du verwenden?
SQLite????

Da ein gesamtes Fertigungsteil offensichtlich mehrere Einteile umfaßt:
1|aes-pm500_z005|Kubus|1|98
2|aes-pm500_z006|Platte|1|96
sollte man hier mit Relationen arbeiten, um mehrfache Datenspeicherung der selben Daten zu verhindern.

Besteht nun tatsächlich ein Fertigungsteil aus mehreren Einzelteilen?

Aber um gezielt helfen zu können, braucht man diese Infos.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

dysti hat geschrieben:@purebasic09,

wenn man dir helfen soll, muß du auch die zugehörige Procedure "arbauf_DB()"

Code: Alles auswählen

arbauf_DB(w,0)
schon veröffentlichen.
Dysti kiek nochma jenau hin. :wink:

EDIT: Örks, der meckert das ja wirklich als fehlende Prozedur an.
Na wie dem auch sei, es ist offensichtlich ein Array und dem Code fehlt eigentlich nur ein Dim arbauf_DB.s (8,0) am Anfang.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Beitrag von jojo1541 »

Kurzer hat geschrieben:Dim arbauf_DB.s (8,0)
Wieso einen zweidimensionalen Array verwenden, wenn die zweite Dimension nur eine Position hat? Eine Angabe über den Array wäre wirklich gut.
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Beitrag von Kurzer »

volti hat geschrieben:Wieso einen zweidimensionalen Array verwenden, wenn die zweite Dimension nur eine Position hat?
Das frag ich mich auch, aber evtl. hat PureBasic09 noch mehr damit vor?
Der Codestil ist eh ein bißchen - sagen wir mal - unbeholfen, aber das ist bei einem Programmieranfänger sicherlich in der Anfangsphase so.

Ich hoffe nur, daß er sich, nachdem er sich ein bißchen mit kleinen Routinen und Tools "ausgetobt" hat, auch nach Informationen zum effizienten und strukturierten Programmieren umschaut, damit er die Lust nicht schon nach kurzer Zeit verliert - wenn er sich im eigenen Spaghetticode verfangen hat.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
Antworten