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