Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Ini-Datei für Versionsprüfung von Server abrufen (https://www.delphipraxis.net/96621-ini-datei-fuer-versionspruefung-von-server-abrufen.html)

Svenkan 27. Jul 2007 15:11


Ini-Datei für Versionsprüfung von Server abrufen
 
Ein normales Einlesen wie vom PC funktioniert ja leider nicht.
Ich möchte gerne eine einfache Versionsüberprüfung ins Programm einbauen.
Wie muss der Abruf stattdessen erfolgen?

arbu man 27. Jul 2007 15:14

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Ein Paar mehr Informationen wären schon gut, wenn es ein HTTP Server ist dann benutze die Indy Komponenten.

Svenkan 27. Jul 2007 15:25

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Jep, http.
Also über IdHTTP downloaden und dann auslesen, oder wie?

RobertP 27. Jul 2007 15:54

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Delphi-Quellcode:
newversion := StrToFloat(idHTTP1.Get('http://www.blubb.de/bla.txt'));
idHTTP1.Disconnect;
und die txt:
Code:
1,0

Svenkan 27. Jul 2007 16:28

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Naja, in der Datei sind aber auch noch Infos wie Downloadpfad und Dateiname. ;)

Luckie 27. Jul 2007 16:31

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Ja und? Das Prinzip ist das selbe. Runterladen und auslesen.

Svenkan 27. Jul 2007 16:42

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Delphi-Quellcode:
  try
    Ini:=TIniFile.Create(idHTTP1.Get('http://svenkan.sv.ohost.de/delphi/vplan/update.ini'));
    //Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'update.ini');

    version:=Ini.ReadString('VPlan','Version','Fehler beim Abrufen der Version');
    pfad:=Ini.ReadString('VPlan','Pfad','http://svenkan.sv.ohost.de/delphi/vplan/');
    datei:=Ini.ReadString('VPlan','Datei','');
  finally
    Ini.Free;
  end;
Delphi-Quellcode:
 NewestVersion.Caption:=version;
Dabei erhalte ich die Fehlermeldung: 'Wert muss zwischen 1 und 2147(..) liegen'.
Deswegen meine Nachfrage!
Und ich benutze für 'version' einen String, weil ich Zusätze wie '/1' etc benutze.

Luckie 27. Jul 2007 16:50

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Delphi-Quellcode:
Ini:=TIniFile.Create(idHTTP1.Get('http://svenkan.sv.ohost.de/delphi/vplan/update.ini'));
    //Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'update.ini');
Überleg mal warum die zweite Zeile funktioniert aber die erest nicht. Kleine Hilfe: Was liefert idHTTPGet zurück und was wird im Constructor von TIniFile als Parameter erwartet?

Svenkan 27. Jul 2007 17:00

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Beides String, oder nicht?

Luckie 27. Jul 2007 17:04

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Richtig. Aber was liefert idHTTPGet für ein String und was erwartet TIniFile.Create für einen String?

geofranz01 29. Jul 2007 17:47

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Hi Svenkan,
der Hauptunterschied ist TMemIniFile.
nach langem rumbrobieren: (Bei mir klappst, ist aber wahrscheinlich nicht sehr elegant!)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR
 version, prog:string;
 ini:TMemIniFile;                   //TMemIniFile kann aus Strings lesen
 t,t2:TStrings;
 i,u:string;

begin
try
i:= IdHTTP1.Get('htpp://google.de/user.ini');  //Ini holen
ini:= TMemIniFile.Create('');                            //freilassen, wegen SetString von MemIniFile!!
t:=TStringList.Create;         //Stringlist erzeugen
t2:=TStringList.Create;         //Stringlist 2 erzeugen
Toini('[User]', i, t2);            //String i aufsplitten und die einzelnen Zuweisungen als
                                           //einzelne Strings in die Stringlist t einfügen
t.AddStrings(t2);         //t2 in t einfügen (keine Ahnung mehr wiso)
ini.SetStrings(t);         //MemIniFile, Ini von Stringlist lesen
version:=ini.ReadString('prog','version','no');   //
finally
ini.Free;
t.Free;
t2.Free;
end;
end;




procedure TForm1.ToIni(h:string; i:string; var t2:TStrings);   //totales Chaos, aber es funktioniert! Der String wird so bearbeitet,
Var                  //dass die einzelnen Zuweisungen zu Strings werden und in einer
t3:Tstrings;               //Stringlist Zusammengeführt
z:integer;
begin
t3:=TStringList.Create;
i:=StringReplace(i, ''#$D#$A'', ', ', [rfReplaceAll, rfIgnoreCase]);
i:=StringReplace(i, h + ', ', '', [rfReplaceAll, rfIgnoreCase]);
t3.CommaText:=i;
t2.Add(h);
for z := 0 to t3.Count-1 do
  begin
   t2.Add(t3.Names[z] + '=' + t3.ValueFromIndex[z]);
  end;

end;

Hoffe dir damit geholfen zu haben

Wie gesagt, das ist totales Chaos!! :(

geofranz01

Jelly 29. Jul 2007 18:17

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Ich schmeiss mal meine TInternetUpdate Komponente in den Raum, und gerade weil Rema ja jetzt auch für umme ist, eventuell auch ein reizbares Produkt.

Adrian90 1. Aug 2007 01:17

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Ich fände es einfacher, wenn für jede Information eine eigene Textdatei vorhanden ist, oder dass ein PHP-Skript die Daten herausgibt. In dem Stil von:
Delphi-Quellcode:
version := IdHTTP1.Get('http://domain.de/updateinfo.php?action=getversion');
downloadpath := IdHTTP1.Get('http://domain.de/updateinfo.php?action=getdownloadpath');

Man könnte natürlich auch einfach die eigene Versionsnummer weitergeben, und die PHP-Datei schickt, wenn die Version tiefer ist, direkt das Update. Ansonsten einfach eine Zeile, die besagt, dass die Version aktuell ist.

Jelly 1. Aug 2007 06:22

Re: Ini-Datei für Versionsprüfung von Server abrufen
 
Zitat:

Zitat von Adrian90
Ich fände es einfacher, wenn für jede Information eine eigene Textdatei vorhanden ist, oder dass ein PHP-Skript die Daten herausgibt.

Genau das macht doch meine besagte Komponente.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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