Entwickler-Ecke

Sonstiges (Delphi) - Programm start nicht


MunichEast - Di 17.08.10 16:25
Titel: Programm start nicht
Hallo liebe Delphier,
oder wie sagt man da?

Ich bräuchte für meine Bachelorarbeit ein Programm, das mit dem Traveling-Sealesman-Problem zu tun hat.
Das Problem: Das Programm ist in Delphi geschrieben und davon habe ich keine Ahnung.

Ich habs jetzt mal dem Embarcadero Delphi 2010 zum Kompilieren bekommen, was auch klappt,
bis eine EInOutError Exception mit Meldung Ungültiger Datiename -%s geworfen wird.

Ich habe schon geschaut, ob ich vielleicht vergessen habe, über die Konsole irgendwelche Parameter mitzugeben,
aber da scheitert mein Allgemeines Programmierwissen.

Kann sich das jemand vielleicht mal anschauen?

Das Projekt liegt auf

http://act-r.psy.cmu.edu/ftp/models/tsp/

Dauert für euch sicher nur 3 Min und spart mir xxx Stunden;)
Danke für die Hilfe!!!*verzweifel*
MunichEast


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 17.08.2010 um 16:39


Gausi - Di 17.08.10 16:57

Hallo und :welcome: in der Entwickler-Ecke,

Deine Bachelor-Arbeit muss du schon selber schreiben, aber etwas helfen kann man da schon. ;-)

Wer hat denn dieses Programm verbrochen? :shock: Unten in der Haupt-Unit, also der TSPMain.pas findet sich dieser Code:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
initialization

{$I-}
{ Change to directory data is contained in }
ChDir('c:\data\tsp project\tsp');
if IOResult <> 0 then
  MessageDlg('Cannot find directory', mtWarning, [mbOk], 0);

Absoulte Pfade haben in einem Code nichts zu suchen. Mach daraus mal ein

Delphi-Quelltext
1:
2:
chDir(ExtractFilePath(ParamStr(0))); // das ist das Verzeichnis, wo die Exe drinliegt
assignfile(preffile, ExtractFilePath(ParamStr(0)) + 'tsp.ini');


Außerdem fehlen da scheinbar noch einige Dateien, denn später kommt

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Case...
    originalprobs:  assignfile (infile, 'origprob\problems.txt');
    randomprobs: assignfile (infile, 'randprob\randprob.txt');
    randomprobs2: assignfile (infile, 'randprob\randprob.txt');
    bigprobs: assignfile (infile, 'rndbprob\randbigp.txt');
    trickprobs: assignfile (infile, 'shapprob\shapprob.txt');
, aber die Dateien finde ich in dem Archiv nicht.


jaenicke - Di 17.08.10 19:08

An der Stelle fällt mir der reisende Weihnachtsmann ein: :mrgreen:
http://www.delphi-forum.de/viewtopic.php?t=79372&highlight=travelling+weihnachtsmann

Dort gibt es auch ein paar Lösungen.