Forum: FreePascal
by FAlter,
16. Jun 2009
Hi,
wenn ich einen String in ein packed record packe, dann enthält dieser auch noch ein Längenbyte, was falsch ist. In der Datei ist vorne kein #8 für die Längenangabe, einfach die 8 Zeichen. Oder ich müsste die MagicBytes einzeln einlesen, ich will aber lieber den ganzen Header in einem Rutsch einlesen. Klar wäre move auch noch ne Möglichkeit. Ich wollte es halt nur einfacher machen.
Gruß...
Forum: FreePascal
by FAlter,
16. Jun 2009
Hi,
es handelt sich um MagicBytes am Anfang einer Datei. Daran soll festgestellt werden, ob es sich um die richtige Datei handelt - es ist unwahrscheinlich, das eine andere Art von Datei mit dieser Buchstabensequenz gefolgt von drei #0-Zeichen beginnt. Und wir kennen ja alle die Dateien, die mit MZ, PNG, JFIF, TIFF, MTrk, PKZIP, EXIF oder einer ähnlichen Sequenz beginnen. Dies ist durchaus...
Forum: FreePascal
by FAlter,
16. Jun 2009
Hi,
Jetzt weiß ich, wie es bei Delphi wäre. :-) Gut zu wissen, dass es auch bei Delphi nicht identisch ist.
Wird das also bei FPC dann in einen ShortString umgewandelt, welcher die Länge 5 statt 8 hat? Denn dem Namen der aufgerufenen Funktion nach wird es in einen ShortString umgeqwandelt.
Das wäre allerdings kritisch, da dann beim zweiten Mal, wo ja zwei Umwandlungen in ShortString...
Forum: FreePascal
by FAlter,
15. Jun 2009
Hi,
(gdb) disassemble
Dump of assembler code for function main:
0x08048080 <main+0>: push %ebp
0x08048081 <main+1>: mov %esp,%ebp
0x08048083 <main+3>: sub $0x210,%esp
0x08048089 <main+9>: mov %ebx,-0x210(%ebp)
0x0804808f <main+15>: mov %esi,-0x20c(%ebp)
Forum: FreePascal
by FAlter,
15. Jun 2009
Hi,
program Project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,