Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Turbo Pascal vs. 64bit (https://www.delphipraxis.net/162583-turbo-pascal-vs-64bit.html)

stahli 30. Aug 2011 11:26

Turbo Pascal vs. 64bit
 
Ein Kollege nutzt einige TP-Programme, die weitestgehend bestimmte Dateien umwandeln. Über die Jahre wurden immer wieder kleine Anpassungen vorgenommen und die Projekte so weiter geführt.

Nun wird Win7 64bit eingeführt und die Programme laufen nicht mehr.

Was würdet Ihr empfehlen, um die Projekte weiter zu nutzen?

Ich habe mal versucht, unter D7 eine Konsolenanwendung zu kompilieren. Erst kannte Delphi eine Unit nicht (weiß nicht, ob die bei dem Kollegen zu suchen ist, oder zu TP gehörte) und nach dem Ausklammern derselben akzeptiert D7 den Typ "File of RecordMitStrings" nicht.

Es existieren etwa 30 solche Projekte.
Keine Ahnung, wieviel Probleme auftauchen, wenn man die auf Delphi portieren will.

Genauere Infos habe ich nicht. Habt Ihr grundsätzliche Meinungen?


Delphi-Quellcode:
program Konve20;
//uses crt; // <-- D7 ERST MAL NICHT BEKANNT

type   pv_typ = record
          art                              : string[2];
          zeile                            : string;
        end;

         pv_datei = file of pv_typ; { <-- [Fehler] Konve20.dpr(10): Typ 'pv_typ' benötigt Finalization - nicht im Dateityp erlaubt}

const    rho=200/pi;
var
   einfile                             : text;
   ausfile                             : pv_datei;
   
   
.....

{ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Hauptprogramm ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ}
begin
     flag:='';
     flag2:='';
     farbe(15,0);
     clrscr;
     rahmen;
   
         bildschirm;
         clrscr;
         writeln('         *** Programm zur Umwandlung verschiedener Datenformate ***');

                        {   delay(500);
                           fenster;
                           gotoxy(27,3);
                           write('Bitte beachten !!!');
                           gotoxy(10,6);
                           write('Die umzuwandelnde Datei muss folgendes Format besitzen:');
                           gotoxy(9,9);
                           write('-> siehe K:\Transfer\Vermess\Hilfsprogramme\Konvertierung\');
                           writeln;
                           writeln;
                           gotoxy(20,11);
                           write('Datei: Konvertierungsm”glichkeiten ');
                           gotoxy(26,14);
                           write('[ESC-Taste drcken]');
                           waitforesc;  }
           
               
                        bildschirm;
                        gotoxy(27,21);
                        write('-  Datens„tze einlesen -');
                           fenster;
                         {  menue:      }
                           clrscr;
                         
                           writeln;
                           textcolor(15);
                           write('                    ');
                           writeln('***  Datens„tze einlesen ***');
                           writeln;
                           writeln;
                           write('                    ');
                           textcolor(14);
                           write('N');
                           textcolor(15);
                           writeln('eues internes Format einlesen');
                           writeln;
                           write('                    ');
                           textcolor(14);
                           write('A');
                           textcolor(15);
                           writeln('ltes internes Format einlesen');
                           writeln;
                           write('                    ');
                           textcolor(14);
                           write('W');
                           textcolor(15);
                           writeln('ildformat (16-stellig) einlesen');
                           writeln;
                           write('              ');
                           textcolor(14);
                           write('R');
                           textcolor(15);
                           writeln('eduziertes Wildformat (8-stellig) einlesen');
                           writeln;
                           write('          ');
                           textcolor(14);
                           write('            ');
                           write('K');
                           textcolor(15);
                           write('oordinatenliste einlesen');
                           textcolor(14);
                         {  write('G');
                           textcolor(15);
                           writeln('PS-Koordinatenliste einlesen'); }
                           writeln;
                           writeln;

                           write('                         Auswahl:  ');
                           repeat until keypressed;t:=readkey;
                           write(t);
                           case t of
                                    'a','A' : begin
                                              info:='alt';
                                              konvertieren;
                                              end;
                                    'n','N' : begin
                                              info:='neu';
                                              konvertieren;
                                              end;
                                    'r','R' : begin
                                              info:='wild8';
                                              konvertieren;
                                              end;
                                    'w','W' : begin
                                              info:='wild16';
                                              konvertieren;
                                              end;
                                    'k','K' : begin
                                              info:='tab1';
                                              konvertieren;
                                              end;
                                 {   'g','G' : begin
                                              info:='tab2';
                                              konvertieren;
                                              end;  }
                             
                                 {   'z','Z' : goto start; }
                           end;{of case}
                       {    goto menue; }
                 

                        if (dateia<>'ende') and (dateia<>'') then
                        begin
                           bildschirm;
                           gotoxy(20,21);
                           write('-  Konvertieren in Ausgabe-Format -');
                   
                           rueckkonvertieren;
                        end;
                           bildschirm;
                           gotoxy(20,21);
                           write('Das Programm wird beendet ! ');
                           delay(9000);

end.

Elvis 30. Aug 2011 11:36

AW: Turbo Pascal vs. 64bit
 
Die crt-Unit gibt es hier für Delphi: http://delphicrt.sourceforge.net/
Die habe ich übrigens ohne Probleme per Google mit "Delphi Crt" gefunden.
Ich kann mir einfach nicht vorstellen, wie man an sowas scheitern kann. Ernsthaft, soviel Abstraktions- und Transfer-Fähigkeit sollte man nun wirklich mitbringen.

Dein Problem mit dem Record ist, dass er "String" nutzt.
String is ein von Delphi verwalteter Typ, bei dem Referenzzählung entscheidet wann er freigegeben wird.
Bei einem "File of " weiß Delphi nicht wie und ob es den freigeben kann.

Schaue mal wie ein "String" in TP definiert war. Kann gut sein, dass der jetzt unter ShortString oder sowas läuft.

Lemmy 30. Aug 2011 11:37

AW: Turbo Pascal vs. 64bit
 
Hi,
ich habe vor kurzem ein TurboPascal-Programm unter Delphi XE erfolgreich compiliert. War ein TEstlauf nach dessen erfolgreichen Bestehen der Programmierer sich XE zugelegt hat. Ich kann mich nicht mehr erinnern, was er mir alles zur Verfügung gestellt aht, aber ich glaube mich zu erinnern, dass er die notwendigen Turbo-Pascal Units auch beigelegt hat. Also grundsätzlich sollte das gehen...

Grüße

stahli 30. Aug 2011 11:55

AW: Turbo Pascal vs. 64bit
 
@Elvis
Ich habe mich aus Zeitgründen ja noch nicht genauer mit den Problemlösungen beschäftigt und wollte nur eine GRUNDSÄTZLICHE Einschätzung zur Portierung.
Ich weiß auch nicht, wie die anderen 30 Projekte ungefähr aussehen.

@Lemmy
Ok, danke. Mal sehen, wie wir dann verfahren...

franktron 30. Aug 2011 12:00

AW: Turbo Pascal vs. 64bit
 
Bedenke das die Float Werte andere Bereiche in Delphi haben vor allem in D2009+ (Strings Unicode).

Also ich habe mal in D7 ein Altes Pacal Prog 1 zu 1 umgestellt da kam nur noch Müll raus.

Luckie 30. Aug 2011 12:22

AW: Turbo Pascal vs. 64bit
 
Wahrscheinlich ist es einfacher und schneller das ganze neu zu schreiben. Und wenn man das ordentlich macht, dürfte es auch zukunftssicherer sein.

stahli 30. Aug 2011 12:34

AW: Turbo Pascal vs. 64bit
 
Zitat:

Zitat von Luckie (Beitrag 1120353)
Wahrscheinlich ist es einfacher und schneller das ganze neu zu schreiben. Und wenn man das ordentlich macht, dürfte es auch zukunftssicherer sein.

War auch meine grundsätzliche Überlegung - zumindest wenn eine Kompilierung nicht 1:1 durchläuft.
Wie komplex die Funktionen sind weiß ich noch nicht. Aber wenn schon basteln, könnte man auch eine ordentliche Formularanwendung draus machen.
Mal sehen, was die Kollegen nun sagen...

(Die Projekte sind halt von den Kollegen so nebenher erstellt worden.)

stahli 30. Aug 2011 14:29

AW: Turbo Pascal vs. 64bit
 
Mit free pascal ist es wohl kompilierbar + lauffähig.
Das reicht ihnen dann so erst mal.

mschaefer 30. Aug 2011 15:41

AW: Turbo Pascal vs. 64bit
 
Ansonsten als Übergangslösung gibt es hier eine Anleitung für TP unter Win7.

Grüße in die Runde


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz