Entwickler-Ecke

Dateizugriff - MOFF Datei lesen


oles54 - Mo 25.12.23 12:59
Titel: MOFF Datei lesen
Hallo,
ich fange damit an, dass ich ein "Sonntags Programmierer" bin mit sehr marginalen Kenntnissen.
ich stoße im Moment auf folgendes Problem.
Ich wollte mir einen Konverter schreiben (Fertig Programm ist nicht zu finden)
für eine Sony MOFF Datei (in eine Action Cam geschriebene Datei mit GPS Informationen).
Das Umrechnen der Koordinaten und bringen in einen GPX Format ist kein Problem, aber in der MOFF Datei sind mehrere eingebaute EOF Zeichen an den das Einlesen der Datei zusammenbricht. Wie kann ich die Zeichen eliminieren oder ignorieren und die ganze Datei einlesen.
Ich hoffe das Problem deutlich beschrieben zu haben und freue mich auf die Lösungsvorschläge.


Narses - Mo 25.12.23 15:04

Moin und :welcome: im Forum!

Zeig doch mal deinen bisherigen Code, auch wenn es nicht funktioniert. Es ist dann wesentlich einfacher nachzuvollziehen, was da passiert. Insbesondere, wenn man das MOFF-Format nicht kennt (so wie ich z.B.). :idea: ;)

cu
Narses


oles54 - Mo 25.12.23 16:24

Hier ein Ausschnitt einer MOFF Datei.

Dateiinhalt
1:
2:
3:
4:
5:
6:
7:
8:
9:
#MOFF8             M A H 0 6 3 1 3 . M P 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ·Sd    %Õd    X±P=                                                                                                                                                                                                                                                                    GRUP                 ô   €  8                   ô   €  8                 ô                   INDX                          H              Ø              INDX          P              ø                ˆ
              INDX                         BINA¨       h    €              (        �_                    ×`     ÿÿÿÿ'x�qÉ   A           ×`      æ     ÿÿÿÿ(w�yà   
            æ     ê$     ÿÿÿÿ+y‹p¹   A           ê$     Žs�     ÿÿÿÿzŠtÉ   Ö          Žs�     ¼ïÌ     ÿÿÿÿyŠmÀ             ¼ïÌ     Ây×     ÿÿÿÿ#|‡nÁ   -           Ây×     ðœù     ÿÿÿÿ"|‡rà  “           ðœù     _(˜    ÿÿÿÿz‰sÚ   ž          _(˜    6Ë¿    ÿÿÿÿy‰nß   £           BINA�        P                   (      �_            �eB     †¿H        -                   Ï2ˆ     ��        (                   BINA¸       x    �              (   #   �_                    B÷              £   ñ       B÷      £Å*        ¯þ²ÿ   ¥   ð       £Å*     ÷Ú:         A   þÿ  Ü   ù       ÷Ú:     <vB        ¯þ  ÷ÿ  Þ   ô       <vB     ²4J        ³  ñÿ  ä   õ       ²4J     æ:M        èþžÿôÿ  í   ò       æ:M     ì1T        ª   õÿ  Î   ô       ì1T     Ë_        Pÿ  ÷ÿ  È   õ       Ë_     bƒp        ˆ ïÿøÿ  ¶   õ       bƒp     õÏs        ¾þ úÿ  ÷   ð       õÏs     Àp‰        þÿåÿÿÿ  o   ñ       Àp‰     <Ž        çü  õÿ  û   ù       <Ž     ™     ÿ   2 Íÿûÿ  e   ï       ™     \Ȩ        "ðÿþÿ  ß   ò       \Ȩ     £®        ƒ úÿ  Ü   ö       £®     7²        » ûÿ    ú   û       7²     ž»         ÜÿI     Ú   ô       ž»     úÀ        ® ¢ÿÿÿ  ô   õ       úÀ     yÑ        ¸þT    ‰   ñ       yÑ     ‰¸Ù         ÄÿQ     Ì   ò       ‰¸Ù     IØÝ        M Öÿ    ã   ú       IØÝ     goã        n½ ûÿ  Æ   ï       goã     Çñ        5ÿ2    �   ñ       Çñ     udú        — Êÿùÿ  ¤   í       udú     "ñ        éÿøÿúÿ  ·   ö       "ñ     .U         ÿÿýÿ  Ì   ö       .U     ÎS%       Èý  öÿ  Ð   ï       ÎS%    Èæ9       ýÿ  ùÿ  £   õ       Èæ9    wX       Ÿÿðÿ÷ÿ  Ì   ø       wX    @/n       € üÿøÿ  Ò   ÷       @/n    w!~       ¢þ  úÿ  š   ö       w!~    á·Ÿ        ùÿûÿ    ý   þ       á·Ÿ    {f¥       Õÿ      õ   û       {f¥    Å=¹        F       ó   ü       Å=¹    "ú¿       ôþ\      Þ   ö       BINA¨       h    €              (        �_                    ×`     ÿÿÿÿ'x�qÉ   A           ×`      æ     ÿÿÿÿ(w�yà   
            æ     ê$     ÿÿÿÿ+y‹p¹   A           ê$     Žs�     ÿÿÿÿzŠtÉ   Ö          Žs�     ¼ïÌ     ÿÿÿÿyŠmÀ             ¼ïÌ     Ây×     ÿÿÿÿ#|‡nÁ   -           Ây×     ðœù     ÿÿÿÿ"|‡rà  “           ðœù     _(˜    ÿÿÿÿz‰sÚ   ž          _(˜    6Ë¿    ÿÿÿÿy‰nß   £           BINA�        P                   (      �_            �eB     †¿H        -                   Ï2ˆ     ��        (                   BINA¸       x    �              (   #   �_                    B÷              £   ñ       B÷      £Å*        ¯þ²ÿ   ¥   ð       £Å*     ÷Ú:         A   þÿ  Ü   ù       ÷Ú:     <vB        ¯þ  ÷ÿ  Þ   ô       <vB     ²4J        ³  ñÿ  ä   õ       ²4J     æ:M        èþžÿôÿ  í   ò       æ:M     ì1T        ª   õÿ  Î   ô       ì1T     Ë_        Pÿ  ÷ÿ  È   õ       Ë_     bƒp        ˆ ïÿøÿ  ¶   õ       bƒp     õÏs        ¾þ úÿ  ÷   ð       õÏs     Àp‰        þÿåÿÿÿ  o   ñ       Àp‰     <Ž        çü  õÿ  û   ù       <Ž     ™     ÿ   2 Íÿûÿ  e   ï       ™     \Ȩ        "ðÿþÿ  ß   ò       \Ȩ     £®        ƒ úÿ  Ü   ö       £®     7²        » ûÿ    ú   û       7²     ž»         ÜÿI     Ú   ô       ž»     úÀ        ® ¢ÿÿÿ  ô   õ       úÀ     yÑ        ¸þT    ‰   ñ       yÑ     ‰¸Ù         ÄÿQ     Ì   ò       ‰¸Ù     IØÝ        M Öÿ    ã   ú       IØÝ     goã        n½ ûÿ  Æ   ï       goã     Çñ        5ÿ2    �   ñ       Çñ     udú        — Êÿùÿ  ¤   í       udú     "ñ        éÿøÿúÿ  ·   ö       "ñ     .U         ÿÿýÿ  Ì   ö       .U     ÎS%       Èý  öÿ  Ð   ï       ÎS%    Èæ9       ýÿ  ùÿ  £   õ       Èæ9    wX       Ÿÿðÿ÷ÿ  Ì   ø       wX    @/n       € üÿøÿ  Ò   ÷       @/n    w!~       ¢þ  úÿ  š   ö       w!~    á·Ÿ        ùÿûÿ    ý   þ       á·Ÿ    {f¥       Õÿ      õ   û       {f¥    Å=¹        F       ó   ü       Å=¹    "ú¿       ôþ\      Þ   ö       BINAþš  @Sonygps/ver5.0/wgs-84/20230316083125.000/
@Sonygpsoption/0/20230316083126.000/20230316083126.000/
$GPGGA,083126.000,4633.2623,N,1148.1654,E,1,0,,,M,,M,,*41
$GPRMC,083126.000,A,4633.2623,N,1148.1654,E,0.31,,160323,,,A*44
$GPGGA,083127.000,4633.2622,N,1148.1650,E,1,0,,,M,,M,,*45
$GPRMC,083127.000,A,4633.2622,N,1148.1650,E,0.44,,160323,,,A*42

Alles was vor "@Sonygpsoption/0/" kommt ist für mich uninteressant.
In dem Teil davor kommen schon die EOF Zeichen vor.

bis jetzt habe ich die Datei in ein Memofeld eingelesen - ohne Erfolg.
Dann mit readln auch bleibt am EOF hängen.

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Holgerx - Di 26.12.23 00:10

Hmm...

Bei den MOFF Dateien handelt es sich um BINÄR-Daten, diese kannst Du nicht in TEXT-Komponenten einlesen und verarbeiten, da dort immer wieder mal eine oder mehrere #0 enthalten sind.

Somit musst Du diese Dateien in einen Stream einlesen und dann diesen z.B. nach dem ersten '@Sonygps/' suchen..
Ab dieser Position kannst Du dann den Rest der Daten in eine Stringliste einlesen und verwenden.

Alternativ soll GPSBabel die Files konvertieren können.

Da das Format nicht offengelegt wurde, kannst Du die Dateien alternativ Byte für Byte analysieren und interpretieren...

(So Spielereien habe ich früher öfter gemacht, aber nur wenn genug Musterdateien vorhanden sind, z.B. Spielstände ;)


oles54 - Di 26.12.23 01:15

Danke! Dann suche ich wie man eine binäre Datei als stream öffnet.
Bei GPSbabel habe ich leider nichts gefunden


jaenicke - Di 26.12.23 14:26

TFileStream sollte helfen.