Entwickler-Ecke
Internet / Netzwerk - Updatekontrolle mittels Vergleich eines Textes im Internet
HanFrey - Fr 05.11.04 22:53
Titel: Updatekontrolle mittels Vergleich eines Textes im Internet
Hi all!
Ich hab ein Programm für ein Spiel geschrieben, mit dem man alle
möglichen Sachen, die interessant für dieses Spiel sind, herunterladen kann.
Ich möchte nun in dieses Programm eine Updatefunktion einbauen.
Etwa so hab ich mir das Vorgestellt:
-Im Progamm steht ein Button "Möchten sie aktualisieren?" - (JA,NEIN)
-Das Programm hat die Versionsnummer 1.07 --> also der Einfachheit halber: "107"
-Im Internet steht aber bereits Version 1.08 (108) zur Verfügung.
-Also steht auf der Seite, auf der das Prog zum Download steht, ein Textfeld.
Das Textfeld hat den Inhalt: 108 (Also die neueste Version)
Das Textfeld wird verstckt sein, und dient nur diesem Zweck.
Das Programm soll jetzt erkennen, ob der Versionswert, der Im Internet steht, höher ist,
als der Versionswert des Programms. Wenn ja, dann soll der Download beginnen.
Ich weiß diese Beschreibung ist kompliziert, aber ich weiß nicht, wie ich es anders erklären soll.
Wem es Hilft:
http://www.webalice.it/rockyr/RenBrow_News.html
Da ist das Programm... es heißt RenBrow..
matze - Sa 06.11.04 12:37
ist genaz einfach. du nimmst die indy kompos. die bekommst du unter
http://www.nevrona.com/indy und dann suchst du hier mal im forum nach
INDY.
mit den idnys kannst du dir den inhalt einer datei aus dem internet per HTTP direkt in einen string laden lassen.
dann haste in dem string den text des textfiles aus dem internet drin und dann prüfst du einfach, ob das ne höhere nummer ist.
fertig.
HanFrey - So 07.11.04 11:17
OK ok... Indy hab ich jetzt drauf.. habs einfach in irgenteinen Ordner gezogen...
Scheint aber zu funktionieren.Kann jetzt Indy-Client und Indy-Server auswählen.
Und was muss ich dann machen? Hab leider keinen Plan davon, und weiß überhaupt nicht, welche von den fast 40 Komps ich nehmen soll.
Hier im Forum finde ich keinen Beitrag, wo das beschrieben wird..
matze - So 07.11.04 18:18
du nimmst dazu den INDY Http Client. das ist der mit der weltkugel !
GTA-Place - So 07.11.04 20:56
Ich habs so gemacht:
Textfile runtergeladen
In Stringlist reingeladen
Version verglichen.
Textfile gelöscht.
endeffects - Mo 08.11.04 11:21
Delphi-Quelltext
1: 2: 3: 4:
| var LatestVersion, CurrentVersion: String;
LatestVersion:= IdHttp.Get('http://domain.tld/latestversion.txt'); if LatestVersion <> CurrentVersion then ... |
Moderiert von
Udontknow: Doppelposting entfernt.
endeffects - Mo 08.11.04 11:24
narf
gibts in diesem forum denn keine möglichkeit einen beitrag zu editieren?
jaenicke - Mo 08.11.04 11:33
Zitat: |
gibts in diesem forum denn keine möglichkeit einen beitrag zu editieren? |
Im Moment leider nicht...
Udontknow - Mo 08.11.04 11:34
Hallo!
Die Funktion wurde aus Performance-Gründen abgeschaltet, sie wird innerhalb der nächsten paar Tage jedoch wieder reaktiviert.
Cu,
Udontknow
HanFrey - Mo 08.11.04 15:10
Ok danke an alle ! :D
Ich probiers gleich aus.
HanFrey - Mo 08.11.04 15:33
Ich bin doof... :oops:
.. hab den code von endeffects in diesen IndyHTTP clienten
(über doppelklick) geschrieben. er kennt ".get" nicht..
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
type TForm1 = class(TForm) IdHTTP1: TIdHTTP; procedure IdHTTP1Authorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.IdHTTP1Authorization(Sender: TObject; Authentication: TIdAuthentication; var Handled: Boolean); var LatestVersion, CurrentVersion: String;
begin currentversion:='107'; LatestVersion:= IdHttp.Get('http://irgend-eine-seite.de/mitText.txt'); if LatestVersion > CurrentVersion then begin ShellExecute(Application.Handle, 'open', PChar('http://einProgramm.de/aufeiner/seite.exe'), nil, nil, sw_ShowNormal); end;
end;
end. |
Fehler: undefinierter Bezeichner: 'TidAuthentication'
Fehler: undefinierter Bezeichner: 'get'
Bestimmt stell ich mich einfach nur dumm an...
hab davon nämlich überhaupt keinen Plan.
Wie müsste es richtig sein?
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt.
Udontknow - Mo 08.11.04 15:40
Hallo!
Zur ersten Meldung: Du musst die Unit, in der diese Klasse (TidAuthentification) definiert ist, in die Uses-Klausel einbringen. Durchforste am besten mal alle Indy-Units per Windows-Suche, um rauszufinden, welche das ist.
Zur zweiten Meldung: Du hast die "1" vergessen, "IdHTTP1" heisst deine Komponente, "IdHTTP" dagegen ist die Unit, die diese Komponente implementiert.
Cu,
Udontknow
HanFrey - Mo 08.11.04 18:31
Ok das zweite hab ich jetzt soweit.. nur noch die erste Fehlermeldung.
Hab eine Datei namens idHTTP.dcu gefunden...
Die Datei verwendet er aber (glaube ich) schon..
Was muss ich genau machen??
Bin schon wieder Planlos...
Udontknow - Mo 08.11.04 18:33
Die gesuchte Unit heisst "IdAuthentication". :)
Cu,
Udontknow
HanFrey - Mo 08.11.04 20:51
Ok THX das geht jetzt..(Prog startet) hab es einfach unter USES mit dazugeschrieben.
Aber wie kann ich die Abfrage, um die es eigentlich geht, in Gang setzen? Dieses komische idHTTP Teil kann ich nicht sehen.. geschweige denn anklicken.
Ich lerns nie! :(
matze - Di 09.11.04 13:03
du hast das ins falsche event regeschrieben !
kopier mal den code aus dem event raus und setzt den mal bei deinem OnClick von ineme Button ein !
idhttp1 ist ja nur die kompo die das unterlädt. die macht selber nix und ist auch eine nicht-visuelle kompo.
HanFrey - Di 09.11.04 18:12
Geil es funktioniert!
Danke euch allen!!!!
*freu* :D
THX!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!