![]() |
Einfaches Online Update
Hi,
bitte nicht so hart mit mir sein, denn das ist mein erster Beitrag für die Code-Lib! :) Mithilfe dieser Anleitung ist es möglich ein kleines aber feines Online- Update zu realisieren! Der Grundgedanke ist, dass man eine Textdatei auf einem Server downloadet, diese ausliest und dann prüft ob ein Update notwendig ist und gegebenfalls downloaden! Dies sollte in gut einer halben Stunde zu schaffen sein. Kein wirklich großer Aufstand, da eine Update- Funktion ja gar nicht so schwer sein muss :) Anleitung: Zuerst downloadet man sich ja die Textdatei:
Delphi-Quellcode:
Dies kann man entweder so wie gerade beschrieben oder halt über die Indys tun!
uses
URLMon; procedure TForm1.Button1Click(Sender: TObject); var Datei,Ziel:PChar; begin try Datei := 'http://www.DieSeite/DieDatei.txr'; Ziel := 'C:\Windows\Desktop\DieDatei.txt'; UrlDownloadToFile(nil, Datei, Ziel, 0, nil); except ShowMessage('Ein Fehler ist aufgetreten! Programm wird beendet!'); Form1.Close; end; end; end; Bei "Datei" die Textdatei auf deinem Server eintragen, bei "Ziel" das Ziel^^ Ich würde euch empfehlen, die Datei im Ordner deiner Anwendung zu downloaden. Und vergesst nicht, sie am Schluss wieder zu löschen, den sonst entsteht Datenmüll:
Delphi-Quellcode:
Die Textdatei würde ich wie folgt aufbauen:
DeleteFile('Pfad der Textdatei.txt');
Zur Erklärung: 1. Zeile := Die Version ohne einen Punkt in der Mitte damit man Sie mit < bzw. > dann später vergleichen kann 2. Zeile := Die Version so, wie Sie der User dann sehen wird um dann zu entscheiden ob er ein Update will oder nicht 3. Zeile := Die Datei, die gedownloadet werden soll 4. Zeile := Die Beschreibung warum ein Update gemacht werden soll bzw. die Update- Erneuerungen Dann noch in eurem Programm die Textdatei öffnen:
Delphi-Quellcode:
Das Edit1.text := List[0] list die erste Zeile aus wenn ihr da [1] reinschreibst halt die 2. Zeile und immer so weiter.
var
List: TStrings; begin List := TStringList.Create; try List.LoadFromFile('C:\UpdateDatei.txt'); if List.Count>0 then Edit1.Text:=List[0]; finally List.Free; end; end; Wenn ihr das so für alle vier Zeilen gemacht hast, steht im ersten Edit die Version im 2. Edit die Version mi nem Punkt in der Mitte zur Übersicht und so weiter... Dann könnt ihr ja ein Label auf euer Form ziehen in dem z.B.: 31(für Version 3.1) drinnen steht und das vergleichst du dann mit Edit1.text: Die Überprüfung ob ein Update von Nöten ist (in diesem Fall nämlich nicht!):
Delphi-Quellcode:
if StrToInt(Edit1.text) > StrToInt(Label1.caption) then
ShowMessage('Es ist ein Update möglich!') else ShowMessage('Es ist kein Update nötig! Die Software ist auf dem neusten Stand'!); Wenn ein Update möglich ist dann macht ihr wieder die Download Procedur mit dem Link aus deiner gedownloadeten Textdatei! Was ich euch noch empfehlen kann ist ein Vorschau- Fenster wo noch Beschreibung und so drinnen steht: Gehen wir mal davon aus, das das Vorschau Form den Namen Form2 :) trägt und sich auf diesem ein paar Labels und ein Memo- Feld befinden, dann müsste man ja nurnoch mit der Textfeld- Laden Procedur die einzelnen Zeilen auslesen und Fertig! Das mit dem Memo würde ich empfehlen für die Beschreibung, da diese in einem einzigen Label wohl kaum Platz finden könnte! Außerdem sollte die alte Version des Programmes dann selbst gelöscht werden nach Nachfrage! Auch eine ProgressBar für dein Fortschritt kann man einbauen, ist aber bei kleineren Dateien sinnlos: Dafür wurde von BullsEye ein Thread aufgemacht, der euch bestimmt weiterhelfen kann. Solltest ihr noch Fragen haben, stellt sie einfach! Hoffe ich konnte euch damit helfen! Falls Ihr euch das Update und so mal angucken wollt, dann downloadet doch einfach meinen Passwort Saver, denn dort ist GENAUS DAS VERFAHREN drinnen! MFG Lars Wiltfang [edit=Matze]Dieses Thema reicht nicht ganz aus, um in die Code-Library aufgenommen zu werden. MfG, Matze[/edit] |
Re: Einfaches Online Update
Ich kann nur bestätigen, das es funktioniert hab damit selbst nen Update Programm geschrieben bzw bin noch dabei.
Allerdings hab ich das 'Problem' mit zwei Textdatein gelöst. Und zwar eine wo die Nummer drin steht, damit sie verglichen wird und die andere, wo ich die Änderungen(wie bereits erwähnt) in einem Memofeld ausgeben lasse. Es ist noch nicht ganz fertig aber so die Grundfunktionen (Runterladen der Textdateien, prüfen und runterladen der Datei selbst) gehen soweit fehlen nur noch ein paar "Schönheitsfehler" |
Re: Einfaches Online Update
warum das problem. es gibt doch mit der einen keine oder??? :)
|
Re: Einfaches Online Update
Mit das "Problem" meinte ich des Update an sich selbst ;)
Weiß nicht, ich fande es so irgendwie besser.^^ EDIT: Vllt kannst du deinen Code ja noch mit dem Löschen der Datei o.ä. erweitern ;) |
Re: Einfaches Online Update
gut dann setzte ich mich jez gleich noch mal dran und füg noch n bisschen hinzu :) aber irgendwie kapier ich nicht warum du gleich 2 textdateien downloaden willst???
|
Re: Einfaches Online Update
Wie sieht das dann aus, wenn Du mehr als eine Datei updaten musst? ;)
Pro Datei eine Textdatei? |
Re: Einfaches Online Update
ja dann fängt das einfach inder 5. zeile von vorne an dachte ich :)
|
Re: Einfaches Online Update
Dachtest Du, aber funktioniert ja nicht so, zumindest nicht mit Deinem Ursprungs-Code.
|
Re: Einfaches Online Update
kla funktioniert das :) hab doch beschrieben das wie man jede einzelne zeile ausliest und dann is das doch wohl kla oder? außerdem habe ich es ja auch EINFACHES ONLINE UPDATE genannt! Die meißten delphi anfänger wollen sowiso nicht mehr :) und wer mehr daten vergleichen will kann sich das bestimmt daraus entschließen :)
|
Re: Einfaches Online Update
Und wer mehr Dateien auf einmal Updaten will kann dann auf XML / INI aufbauen ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 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