Könnte man machen, kommt ja fast auf das Selbe raus.
Aber meine Alternative ist nicht grade kompliziert
Hier mal ein Beispiel:
Du hast deinen fertig compilierten Server (Server.exe).
So, jetz machst du dir folgendes Prog...
Delphi-Quellcode:
var
F: File;
Port: String[5];
begin
Port := '159'; //Port auf 159 setzen, der String "Port" bleibt trotzdem 5 Zeichen lang!!
AssignFile(F, 'Server.exe');
Reset(F, 1);
Seek(F, FileSize(F)); //Ganz an das Ende der Datei gehen
BlockWrite(F, Port, SizeOf(Port)); //Port schreiben
CloseFile(F); //Datei schließen
end;
UNGETESTET!!
Jetzt Server.exe mit Notepad öffnen.
Ganz hinten müsste jetzt der Port 159 stehen, mit 2 Leerzeichen dahinter, da der String Port ja in jedem Fall 5 Zeichen lang sein soll (Macht das Ganze viel einfacher).
So, Server.exe kann beim Start jetzt Folgendes tun...
Delphi-Quellcode:
var
F: File;
Port: String[5];
begin
CopyFile('Server.exe', 'Server_temp.exe', False); //Kopie erstellen
AssignFile(F, 'Server_temp.exe');
Reset(F, 1);
Seek(F, FileSize(F) - 5); //Dateizeiger an den Anfang des Portstrings, der ja immer 5 lang ist
BlockRead(F, Port, SizeOf(Port)); //Port aus Datei in den String "Port" schreiben
CloseFile(F); //Datei schließen
DeleteFile('Server_temp.exe'); //Datei löschen
end;
UNGETESTET!!
Fertig
Hoffe man kanns nachvollziehen.
//EDIT: Roter Kasten is da....Hab mit so viel Mühe gegeben ... Ich schreibs trotzdem mal
Chuck Norris has counted to infinity ... twice!