![]() |
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? |
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.
|
Re: Ini-Datei für Versionsprüfung von Server abrufen
Jep, http.
Also über IdHTTP downloaden und dann auslesen, oder wie? |
Re: Ini-Datei für Versionsprüfung von Server abrufen
Delphi-Quellcode:
und die txt:
newversion := StrToFloat(idHTTP1.Get('http://www.blubb.de/bla.txt'));
idHTTP1.Disconnect;
Code:
1,0
|
Re: Ini-Datei für Versionsprüfung von Server abrufen
Naja, in der Datei sind aber auch noch Infos wie Downloadpfad und Dateiname. ;)
|
Re: Ini-Datei für Versionsprüfung von Server abrufen
Ja und? Das Prinzip ist das selbe. Runterladen und auslesen.
|
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:
Dabei erhalte ich die Fehlermeldung: 'Wert muss zwischen 1 und 2147(..) liegen'.
NewestVersion.Caption:=version;
Deswegen meine Nachfrage! Und ich benutze für 'version' einen String, weil ich Zusätze wie '/1' etc benutze. |
Re: Ini-Datei für Versionsprüfung von Server abrufen
Delphi-Quellcode:
Ü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?
Ini:=TIniFile.Create(idHTTP1.Get('http://svenkan.sv.ohost.de/delphi/vplan/update.ini'));
//Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'update.ini'); |
Re: Ini-Datei für Versionsprüfung von Server abrufen
Beides String, oder nicht?
|
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?
|
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 |
Re: Ini-Datei für Versionsprüfung von Server abrufen
Ich schmeiss mal meine
![]() ![]() |
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. |
Re: Ini-Datei für Versionsprüfung von Server abrufen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr. |
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