Avatar billede kennethv Nybegynder
14. august 2007 - 13:25 Der er 8 kommentarer og
1 løsning

Gammel DOS lavet i turbo pascal.

Hvordan er det muligt at importere gammel turbo pascal sourcekode til Delphi 2005?
Avatar billede pellelil Nybegynder
14. august 2007 - 13:41 #1
Sourcefilerne fra et Turbo Pascal er blot .PAS (Tekst) filer som du uden problemer bør kunne læse ind i Delphi 2005, men det er så ikke ensbetydende med at det virker.

Turbo Pascal arbejdede med Tekst-mode og ofte skrev man direkte i "skærmhukommelsen"(det hukommelsesområder der indehold de tegn - og deres farver - for det der blev vist på skærmen) for at opnå hurtigere skærm opdateringer. Ligeledes hvis det er udviklet med en af de senere versioner af Turbo Pascal har man måske gjort brug af Turbo Vision eller lign. (Turbo Power havde et konkureende produkt - husker ikke lige navnet) som var opbject orienterede bibliotekter der indeholder classer som gav muligheder for at bygget et program op med Vinduer, Menuer og support for mus (men altså stadig tekst-baseret/ikke grafisk).

For uden af du således ikke kan bruge ind-/udlæsning fra den gamle source så er der også sket meget i selve Pascal-sproget siden den gangæ. F.eks. i dag definnre du aldrig lægden på en streng variablel (man kan, men det er ikke tilrådeligt), den gang læste man som regel altid strengen længde ved at kigge på StringVar[0], i dag skriver du i en funktion "Result := xxx;" hvor man den gang (hvis jeg husker korrekt) brugte "Return xxx;" osv. osv.

Der for vil jeg umiddelbart gætte på at det nemmeste nok bliver at skrive det om i stedet for at få det gamle til at virke!?
Avatar billede tauron Nybegynder
14. august 2007 - 14:55 #2
enig  -  men afhængig af de problemer, du løser kan der jo godt være en heldel logik som med små ændringer kan genbruges i "moderne" pascal.  Hvis dit gamle program er ren spagetti er det tvivlsomt, men hvis det er opbygget fornuftigt modulært kan du sikker have glæde af den gamle kode.
Avatar billede a_nor Nybegynder
14. august 2007 - 15:41 #3
Du kan i sagens natur ikke bruge de gamle skærmdialoger. Anden kode kan briges til at fungere, evt med ikke helt ubetydelige omskrivninger. 

For at konvertere noget der gemmer records i filer skal man bruge følgende
Gl.Pascal: Integer  -> Delphi:  SmallInt
Bruges der Real skal $REALCOMPATIBILITY ON benyttes. Evt. i projectfilen.
Sørg for at der IKKE foregår alignment  Compilerdirective: {$A1}
Er der String erklæringer skal direktivet {H-} anvendes. Ellers er AnsiString default.

Ovenstående er erfaring med Borland-Pascal kode til Delphi 7 konvertering.

mvh
Avatar billede hrc Mester
15. august 2007 - 13:49 #4
Du slipper nok ikke for at skulle lave en hel del konverteringer/rettelser. F.eks er st[0] en gammel måde at få/sætte længden på en streng. Den kan Delphi ikke lide. Der er mange af den slags ting.

Bruger dit TP-program klasser? 3'die parts pakker? BASM? Hvor meget er der i opgaven?

I øvrigt skulle du tage at skifte din D2005 ud med en nyere. Det er en skodversion!
Avatar billede kennethv Nybegynder
17. september 2008 - 21:45 #5
Lukkes
Avatar billede hrc Mester
18. september 2008 - 09:21 #6
Kenneth: Kom du videre? Ikke fordi 15 points er noget at snakke om, men jeg vil da mene at dit spørgsmål blev besvaret adskillige gange.
Avatar billede kennethv Nybegynder
18. september 2008 - 09:39 #7
Nej, desværre det gjorde jeg ikke.
Det er desværre lagt i graven for nu. :(
Avatar billede hrc Mester
18. september 2008 - 09:48 #8
OK, men strengt taget fik du svar på spørgsmålet, se a_nors indlæg. At du ikke er gået videre med konverteringen er ikke vores problem.
Avatar billede kennethv Nybegynder
18. september 2008 - 10:08 #9
Det er korrekt. Det var sikkert helt forkert af mig lukke opgaven uden at give point. Det skulle bare gå stærkt lige på det tidspunkt. Hvordan er det muligt at give de point nu?
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