Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Servergenerator (https://www.delphipraxis.net/54662-servergenerator.html)

storm1988 9. Okt 2005 15:43

Re: Servergenerator
 
THX und wie kann ich des jetzt mit einem anderen Programm auslesen bzw. ändern???

ManuMF 9. Okt 2005 15:45

Re: Servergenerator
 
Oder: Programmname: Server_5000.exe -> Port = 5000
also liest das Programm den Port aus dem Dateinamen aus.
Wie wäre es damit?

vlees91 9. Okt 2005 15:54

Re: Servergenerator
 
er hat doch geschrieben, wie er es will
@topic: ich weiß nicht wie das geht

Rastaman 9. Okt 2005 16:26

Re: Servergenerator
 
Du kannst nach dem Compilieren deiner exe mit einem anderen selbst geschriebenen Programm den Port als String an die exe anhängen, also so, dass er, wenn du die exe mit dem Notepad öffnest, als letztes im Binärdurcheinander steht. Die exe stört das nicht, die läuft wie vorher.
Jetzt könntest du es so machen, dass dein Programm sich selbst kopiert, aus dieser Kopie den Port wieder ausliest und die Kopie letztendlich wieder löscht.
Hoffe das war verständlich :)

storm1988 9. Okt 2005 17:01

Re: Servergenerator
 
Des kommt mir aber auch reichlich kompliziert vor. Würde es nicht einfach gehen, dass ich den Speicherort wo der Port in der exe gespeichert ist raus finde (resourcestring) und ihn dann vor dem start mit einem selbst programmierten Programm ändere???

Ratte 9. Okt 2005 17:09

Re: Servergenerator
 
Das mit dem einfach hinten dranhängen ist doch noch einfacher. Du müsstest doch nur dein Proggy in einen Stream lesen und die letzten 6/7/wasauchimmer Zeichen in nen String lesen und den mit StrtoInt behandeln.

Ratte

EDIT: habs eben probiert, geht wirklich.

Rastaman 9. Okt 2005 17:17

Re: Servergenerator
 
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 :mrgreen:

storm1988 9. Okt 2005 18:24

Re: Servergenerator
 
THX für die Hilfe, funktioniert einwandfrei!!!! :thumb:

Eichhoernchen 9. Okt 2005 19:00

Re: Servergenerator
 
BlockRead und BlockWrite, wo ist da der unterschied zu Read und Write??

Rausgefunden hab ich das Block* das binär liest oder schreibt, aber warum muss man das machen?

Rastaman 9. Okt 2005 19:16

Re: Servergenerator
 
Daraus lässt sich schließen, dass du kein Englisch kannst :mrgreen:
Read = Lesen
Write = Schreiben

BlockRead liest Dateien binär und BlockWrite schreibt sie binär...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz