Datentyp ermitteln

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Datentyp ermitteln

Beitrag von benpicco »

Angenommen ich habe eine Datei, in der Strings, Words, Floats und bytes in unbekannter Reihenfolge auftreten, wie kann ich dann jeden Datentyp korrekt auslesen?
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Um es einfach zu sagen: Garnicht.
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Du müsstest das ganz so in die Datei schreiben:
B:AW:ABL:ABCDF:kAoOS:4:Test

Der 1. Buchstabe gibt den Datentyp an. Getrennt durch ein : folgen
dann die Daten. Ausgenommen ist hier S. S steht für String. Aber
gefolgt wird S durch die Anzahl der Bytes, die der String enthält.
dann kommt erst der Daten abschnitt.
Bild
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Naja, ich wollte ja eigentlich eine fremde datei auslesen...
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Dann gibts nur 3 Möglichkeiten:
1. Du suchst dir 'ne Dokumentation des DateiTyps oder fragst den, der die Datei gebastelt hat wie 'se aufgebaut ist.
2. Du nimmst einen HexEditor (o.Ä.) und analysierst die Datei, dadurch bekommt man zwar meist nicht alle Daten die drinstehen, aber die wichtigsten.
3. Du führst den Code aus ...

Code: Alles auswählen

If ReadFile(0,"...")
  While Eof() <> 0
    Select Random(3)
      Case 0
        Debug ReadByte()
      Case 1
        Debug ReadWord()
      Case 2
        Debug ReadLong()
      Case 3
        Debug ReadString()
    EndSelect
  Wend
  CloseFile(0)
EndIf
... und hoffst auf ein Wunder :)
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

> und hoffst auf ein Wunder
:bounce:
Bild
Antworten