Auf die Schnelle habe ich keine Spezifikation zu diesem Dateiformat gefunden.
Beim Betrachten der Datei in einem Hex-Editor konnte ich folgende Informationen in Erfahrung bringen:
- Jedes Zeichen benötigt zwei Bytes, daher ist schon mal klar, dass es sich um Unicode-Strings handelt
- String-Länge (einschließlich der String-Terminierung) wird in Zeichenlänge angegeben und zwar in Form eines Long-Wertes direkt vor dem String
Folgender Code funktioniert mit der Beispieldatei:
Code: Alles auswählen
File$ = "Pfad/zur/Part1.par"
If ReadFile(0, File$)
FileSeek(0, $163C+4)
;CountOfCharacters = ReadLong(0)
Debug "Titel: " + ReadString(0, #PB_Unicode) ;, CountOfCharacters)
FileSeek(0, $1654+4)
;CountOfCharacters = ReadLong(0)
Debug "Thema: " + ReadString(0, #PB_Unicode) ;, CountOfCharacters)
FileSeek(0, $1678+4)
;CountOfCharacters = ReadLong(0)
Debug "Autor: " + ReadString(0, #PB_Unicode) ;, CountOfCharacters)
FileSeek(0, $1434+4)
;CountOfCharacters = ReadLong(0)
Debug "Manager: " + ReadString(0, #PB_Unicode) ;, CountOfCharacters)
FileSeek(0, $1444+4)
;CountOfCharacters = ReadLong(0)
Debug "Firma: " + ReadString(0, #PB_Unicode) ;, CountOfCharacters)
; usw.
CloseFile(0)
Else
Debug "Fehler: ReadFile()"
EndIf
Ich vermute, die Positionen der Daten sind nicht fixiert, sondern abhängig der vorherigen Daten, wodurch der obige Code sicherlich nur mit der Beispieldatei funktioniert.
Es wäre hilfreich, wenn du noch ein paar Beispieldateien zum Herunterladen anbieten könntest.
Sehr wichtig ist auch die Information, ob die Eingaben in deinem CAD-Programm begrenzt sind. Trifft das zu: Wie viele Zeichen sind erlaubt?