Gernot Weber: Dateihandle *.jpg

Hallo Zusammen!

Ich habe folgendes Problem:
In einem mit Digitalcamera erzeugten Foto im Format *.jpg
wird unter anderem das Datum und die Uhrzeit des Fotos mit abgelegt. Wenn man die Datei mit einem Editor öffnet, kann man diesen Eintrag auch irgendwo innerhalb der Datei im Klartext erkennen:
z.B. TimeDate=964005508
Nun möchte ich mit Perl diesen Eintrag auslesen.
Wenn ich jedoch die Datei öffne und sie einer Variablen zuweise, steht in dieser Variablen(egal ob Skalar oder Array) immer nur der Angfang der *.jpg - Datei. Es wird also scheinbar nicht die ganze Datei eingelesen.
Woran kann das liegen?

Gruss Gernot

  1. Nachtrag:
    Falls sich jemand mal eine solche Datei ansehen will:
    http://www328.l3.xodox.com/test/00000234.jpg

    Gruss Gernot

  2. Hallo Gernot!

    Eine Sache, die ich mir vorstellen könnte, wäre die, dass die JPG-Datei keinen einzigen Zeilensprung besitzt. (Ich kenne das genaue JPG-Format nicht...)
    Dadurch bedingt wird alles in eine Zeile geschrieben und irgendwann ist diese Zeile voll. (Ich weiß auch hier nicht genau, wo Perl da seine Maxima setzt -- ich denke 65536 Zeichen,oder??)
    Nach diesem Punkt werden dann keine Daten mehr in die Variable gelesen.
    (Frage: Wenn Du ein Array benutzt, steht dann nur etwas unter dem ersten Index???)

    Bis denne,
    Dennis

    1. Hallo Dennis!

      (Frage: Wenn Du ein Array benutzt, steht dann nur etwas unter dem ersten Index???)

      Bei meinen Versuchen stand am Array etwas in den Indices 1 bis 5

      Gruss Gernot

    2. Hi,

      wo Perl da seine Maxima setzt -- ich denke 65536 Zeichen,oder??)

      ich meine gelesen zu haben, dass es bei PERL da keine Beschraenkungen gibt (nur maschinenbedingte). Das Problem liegt fuer mich eher darin, dass versucht wird eine Binaerdatei wie eine ASCIIdatei zu lesen... aber so genau kenn ich mich damit auch nicht aus.

      Viele Gruesse
      speedy

      1. Hi Speedy!

        ich meine gelesen zu haben, dass es bei PERL da keine Beschraenkungen gibt (nur maschinenbedingte). Das Problem liegt fuer mich eher darin, dass versucht wird eine Binaerdatei wie eine ASCIIdatei zu lesen... aber so genau kenn ich mich damit auch nicht aus.

        Du hattest Recht. Habe ein bischen geforscht.
        Binaerdatei war das richtige Stichwort.
        Es funktioniert, wenn man vor dem Einlesen auf
        binmode DATEIHANDLE;
        umstellt, und die Zeichen mit getc einzeln einliest

        Vielen Dank
        Gernot

        1. Hi,

          Du hattest Recht. Habe ein bischen geforscht.
          Binaerdatei war das richtige Stichwort.
          Es funktioniert, wenn man vor dem Einlesen auf
          binmode DATEIHANDLE;
          umstellt, und die Zeichen mit getc einzeln einliest

          cool! Keine Ahnung und trotzdem geholfen. Fast wie bei Verona Feldbusch <g>.

          Viele Gruesse
          speedy

        2. Hi,

          Binaerdatei war das richtige Stichwort.
          Es funktioniert, wenn man vor dem Einlesen auf
          binmode DATEIHANDLE;
          umstellt, und die Zeichen mit getc einzeln einliest

          oder aber, Du setzt

          undef $/;

          und liest die Datei mit

          my $content = <DATEIHANDLE>;

          Cheatah