freepascal u. turbo Pascal 5.5

von Dietmar Segbert » Sonntag, 16. Januar 2005



Hallo,

ich habe vor längerer Zeit ein kleines Progi für den Grafikdruck mit
meinem Brailledrucker geschrieben und zwar in turbo pascal 5.5.
Das hat auch immer funktioniert zumindest bis ich meinen jetzigen Rechner
bekommen habe.
Ich habe nun dieses Progi ein wenig geändert und mit freepascal neu
kompiliert.
Das ging ohne Fehler.
Nun habe ich allerdings das Problem, die Dateien, die ich mit der alten
tp5.5-Version abgespreichert habe, kann ich mit der neuen Version (FP)
nicht mhr öffnen.
Die alte Datei ist 1890 Bytes gross, die neuen erzeugten Dateien 1914
Bytes.

Ich habe weder die Variablen geändert, noch die Routinen zum laden/
speichern der Dateien verändert.
Meine Vermutung ist, dass turbo pascal und freepascal verschiedene Längen
für integer, word boolean etc. verwenden.

Wäre für einen Tip sehr dankbar
Abgespeichert/geladen wird jeweils eine Variable vom Type sf, die
Deklaration kommt jetzt:


type
zeilen = record
font_nr, breite, hoehe : word;
inhalt : string[40];
end;

pmpic = RECORD
d1 : ARRAY[0..3] OF BYTE; { dummy info }
p : ARRAY[0..51,0..10] OF BYTE;
d2 : BYTE;
END;
pmname = RECORD
p : ARRAY[0..15] OF CHAR;
END;

e sf = record
zeile : array[1..22] of zeilen;
dbr, maxbreite , graphic : integer;
bildda : boolean;
filename : string;
name : pmname;
pic : pmpic;
end;



MFG.
Dietmar




Re: freepascal u. turbo Pascal 5.5

von Matthias Tacke » Sonntag, 16. Januar 2005






Hallo Dietmar,

wäre die Frage nicht in:

oder englischsprachig:



aufgehoben?

--
Gruesse Greetings Saludos Saluti Salutations
Matthias
---------+---------+---------+---------+---------+---------+---------+



Re: freepascal u. turbo Pascal 5.5

von Michael Hemmer » Montag, 17. Januar 2005






Integer behandelt FreePascal (wenn man es nicht angewiesen hat, Delphi
zu spielen) als 2 Byte-Werte; zumindest hieran sollte es also nicht liegen.

Ein weitere beliebte Fehlerquelle in solchen Fällen ist aber die
unterschiedliche Ausrichtung von Daten in Strukturen. FreePascal
verwendet Word-Alignment (2 Bytes), TurboPascal hingegen Byte-Alignment.
Mit der Compiler-Direktive {$PACKRECORDS 1} sollte sich das aber beheben
lassen.

Gruß,

Michael



If you have any questions, you can contact us: admin#mofeel.net     Spam Report