Avatar billede pzw Nybegynder
21. november 2003 - 16:08 Der er 7 kommentarer og
1 løsning

Delphi skal læse filer som er lavet af BorlandPascal 7.0

Filerne består af records som indeholder følgende variable:
String[10] erstattes af String[10] + tilsvarende for andre værdier af strings, altid fast længde.
Integer erstattes af SmallInt.
Real erstattes af Real48.
LongInt erstattes af LongInt.

Forskellige værdier af "Record field alignment" er forsøgt
Jeg får samme antal bytes ved sizeof/gemmes på disken fra Delphi, som når BorlandPascal gemmer på disken.
Jeg bruger Delphi 7.0 Prof.
Benytter file of "record type", mange records i hver fil.

Jeg får ikke de rigtige værdier, rent ulæseligt skrot.
Hvad gør jeg galt ?
Avatar billede borrisholt Novice
22. november 2003 - 09:50 #1
Giv mig tp7 koden til at læse og skrive med. Samt en fil, men en facitliste til så skal jeg hurtigt fixe den

Jens B
Avatar billede borrisholt Novice
22. november 2003 - 09:51 #2
Men prøv ti lat starte med at erstatte Longint med Word
Avatar billede pzw Nybegynder
22. november 2003 - 14:08 #3
Hej Jens

Da du mener eneste fejl kan være Longint/Word, så prøver jeg forfra igen.

//PZ
Avatar billede pellelil Nybegynder
24. november 2003 - 08:21 #4
Foruden at du skal have variabel-størrelserne til at passe så skal du også srøge for at alignment passer. En måde (som du har forsøgt) er at via "Record Field Alignment", men netop da den gode gamle BorlandPascal ikke brugte nogen alligenment overhovedet så kan du også bruge "Packed" i forbindelse med definitionen af din Record.
Avatar billede pzw Nybegynder
24. november 2003 - 22:46 #5
Hej Jens

Jeg har prøvet forfra og det virker nu !!!
Vil du have point skal du lægge et Svar.

//PZ
Avatar billede borrisholt Novice
25. november 2003 - 08:55 #6
Tak :-)

er du klar over hvad du har gjort "galt" ?

Jens B
Avatar billede pzw Nybegynder
25. november 2003 - 11:13 #7
Startede forfra og så virkede det, kunne ikke finde fejlen og opgav efter nogen tid at finde ud af hvor fejlen var i den gamle kode og glædede mig i stedet over det nu virkede.

//PZ
Avatar billede borrisholt Novice
25. november 2003 - 11:52 #8
Problemer er at Tp7 er et 16 bits værktøj. Dermed er en Longint i Tp7 16 bit, hvor i mod den i Delphi 2+ er 32 Bit. En word er ligmed en halv Longint. Ærgo er en 16 Bits longint det sammen som en 32 Bits word !

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester