Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi DOS-Programm starten (https://www.delphipraxis.net/62072-dos-programm-starten.html)

HermannThomas 30. Jan 2006 18:14


DOS-Programm starten
 
Ich besitze ein älteres, mit Turbo-Pascal geschriebenes DOS-Programm, von dem die exe-Datei noch existiert, der Quellcode leider nicht mehr. Wie kann ich dieses Programm mit Delphi 3 starten und so ausführen, dass auch Eingaben möglich sind? Wie muss ein evtl. Parameter eingegeben werden? :gruebel:

marabu 30. Jan 2006 18:50

Re: DOS-Programm starten
 
Herzlich willkommen in der Delphi-PRAXiS, Hermann.

Kannst du das TurboPascal Programm von der Konsole aus erfolgreich starten? Wenn du einen Laufzeitfehler 200 erhältst, dann muss zuerst noch die Kalibrierschleife an die Zielmaschine angepasst werden.

Das nächste Problem ist eventuell der verwendete Zeichencode. Welchen brauchst du? Code Page 437 oder 850?

Hat das Programm eine zeichen- (Turbo Vision, Object Professional) oder grafikbasierte (TEGL) Benutzerschnittstelle, oder ist es ein Konsolprogramm?

Wenn es ein Konsolprogramm ist, werden Standardkanäle für die Ein- und Ausgabe verwendet und sollen die durch dein D3 Programm übernommen werden?

Fragen über Fragen.

Freundliche Grüße vom marabu

HermannThomas 30. Jan 2006 20:23

Re: DOS-Programm starten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke marabu,

Kannst du das TurboPascal Programm von der Konsole aus erfolgreich starten? Wenn du einen Laufzeitfehler 200 erhältst, dann muss zuerst noch die Kalibrierschleife an die Zielmaschine angepasst werden.
Programm läuft einwandsfrei unter Windows 2000 und Windows XP

Das nächste Problem ist eventuell der verwendete Zeichencode. Welchen brauchst du? Code Page 437 oder 850?
Code Page 850

Hat das Programm eine zeichen- (Turbo Vision, Object Professional) oder grafikbasierte (TEGL) Benutzerschnittstelle, oder ist es ein Konsolprogramm?
Konsolprogramm

Wenn es ein Konsolprogramm ist, werden Standardkanäle für die Ein- und Ausgabe verwendet und sollen die durch dein D3 Programm übernommen werden?
Eingabe: Tastatur
Ausgabe: Bildschirm und gespeicherte Textdatei
können im DOS-Programm bleiben

Vielleicht hilft die Anlage weiter? :drunken:

marabu 30. Jan 2006 21:45

Re: DOS-Programm starten
 
Hallo Hermann,

da dein Programm auf meinem Rechner läuft, wurde dein Borland Pascal bereits gepatcht - gut so. Die Ausgabe von Umlauten auf der Konsole hast du in deinem Programm an die CodePage 850 angepasst, die Datei mit den Ligatur-Ausnahmen ist in ANSI codiert, die Datei Beispiel.tex in USASCII. Da dein DOS-Programm keine nennenswerten Ausgaben erzeugt, können die wohl verloren gehen. Der Aufruf deines DOS-Progammes könnte so aussehen:

Delphi-Quellcode:
uses
  ShellApi;

var
  exeName, params, workDir: string;
  h: THandle;
begin
  exeName := 'c:\programme\borland\delphi7\projects\texlig\texlig.exe';
  params := 'beispiel';
  workDir := 'c:\programme\borland\delphi7\projects\texlig\';
  h := ShellExecute(Handle, 'open',
    PAnsiChar(exeName),
    PansiChar(params),
    PAnsiChar(workDir),
    SW_HIDE
  );
  if h > 32
    then ShowMessage('wunderbar')
    else ShowMessage(SysErrorMessage(GetLastError));
end;
Hier im Forum solltest du dich noch nach RunProcess, ShellExecAndWait und ShellExecuteAndWaitA umsehen. Mit diesen Funktionen kannst du dann auch dafür Sorge tragen, dass das DOS-Programm beendet wurde, bevor du eventuell auf die dort erzeugte Ausgabe zugreifst.

Aber unter uns - da werkelt kein richtiger LaTeX-Parser in deinem DOS-Programm, sieht eher nach naivem Ansatz aus. Man merkt es daran, dass Ligaturausnahmen in Kommentaren gefunden werden. Und die Echse ist nicht viel größer als der runtime code. Ich würde die Funktionalität in Delphi nachbilden und das alte DOS-Programm wegwerfen. In der gleichen Qualität wie beim DOS-Programm sind das vielleicht 50 Zeilen Quelltext.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:40 Uhr.

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