AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DOS-Programm starten

Ein Thema von HermannThomas · begonnen am 30. Jan 2006 · letzter Beitrag vom 30. Jan 2006
Antwort Antwort
HermannThomas

Registriert seit: 30. Jan 2006
2 Beiträge
 
Delphi 3 Standard
 
#1

DOS-Programm starten

  Alt 30. Jan 2006, 18:14
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?
Hermann Thomas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: DOS-Programm starten

  Alt 30. Jan 2006, 18:50
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
  Mit Zitat antworten Zitat
HermannThomas

Registriert seit: 30. Jan 2006
2 Beiträge
 
Delphi 3 Standard
 
#3

Re: DOS-Programm starten

  Alt 30. Jan 2006, 20:23
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?
Angehängte Dateien
Dateityp: zip texfil_356.zip (22,8 KB, 7x aufgerufen)
Hermann Thomas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: DOS-Programm starten

  Alt 30. Jan 2006, 21:45
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 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