Es geht hier um den Datentyp 5.
Der Zusammenbau von GPSLatitude etc. ist auch nicht ganz trivial. Das verdeutlich das Prinzip, vielleicht hilft dir das erstmal weiter.
Ja, es geht um PropertyTagTypeRational: 2 Zahlen = 4 Bytes für Zähler und Nenner. Ich hatte es mit Move gemacht, vor 15 Jahren konnte ich es nicht besser.
Bennik, genau die Geo-Koordinaten haben mich auf diese Idee gebracht, es geht.
Delphi-Quellcode:
Type
TRationalBuff = array[0..1] of Integer;
TPRationalBuff = ^TRationalBuff;
else //alle anderen
with PropItem^ do begin
// Move(Value^, RationalBuff, Length); //löst Fehler bei Apple aus
RationalBuff := TPRationalBuff(Value)^;
R1:=RationalBuff[0];
R2:=RationalBuff[1];
if R2 > 0 then
s:=Format('%0.4f',[R1 / R2])
else
s:='error';
s1:=ShowID(ShowTagStr, GetMetaDataIDString(id), PropID);
Result:=Format('%s %s',[s1,s])
end;
Die GDP-Dateien habe ich natürlich auch neu kompiliert, da gibt es viele string - Typen, jetzt alle als 16-Bit-String, Kann es da zu Problemen kommen? Ich weiß aus schmerzhafter Erfahrung Test- oder Demoprogramm ist das eine, der Einsatz in einem großen Programm ist das andere. Meine Motivation hatte ich oben erklärt. Willie.