Re: Versions abfrage Problem!
warum machst du das überhaupt in einer schleife, wenn doch klar definiert ist an welcher stelle
was steht? RInf[0] ist dann deine version (die noch geparst werden muß) und RInf[1] deine anzahl oder was auch immer. |
Re: Versions abfrage Problem!
Zitat:
Auf dem webserver ist eine history.config und beim program ist eine. Die auf dem Server beinhaltet mehrere versionen: Server history.config
Delphi-Quellcode:
Client history.config (steht immer nur die zuletzt geladene version drin ohne datei anzahl)
36.01.11 43
36.01.12 6 36.02.13 1
Delphi-Quellcode:
36.01.10
so, und er soll eine nach dem anderen beziehen, dass heisst nach dem 36.01.11 update lädt er das update für 36.01.12. |
Re: Versions abfrage Problem!
Ich habe jetzt nicht alles in allen Details nachvollzogen, aber die Versionen sollten ja dann in den geraden Zeilen der Stringliste stehen, oder täusche ich mich?
|
Re: Versions abfrage Problem!
genau.
Und diese liste wird von oben nach unten abgearbeitet, die versionsnummer ist gleichzeitig ein ordner auf dem webserver wo er sich die Rinf.Strings[i+1] (43 datein) runterlädt. das klappt auch. mit
Delphi-Quellcode:
ich könnte es dynamicher machen indem ich etwas ändere
if not(RInf.Strings[i] = Localver ) and (length(RInf.Strings[i]) = 8) then
Delphi-Quellcode:
aber an für sich hätte ich keine idee diese history config anders auszulesen, deswegen frage ich ja ob ihr es wisst ^^
if not(RInf.Strings[i] = Localver ) and (length(RInf.Strings[i]) > 8) then
|
Re: Versions abfrage Problem!
Machst Du das innerhalb der for-Schleife? Falls ja, dann könntest Du auch so versuchen:
Delphi-Quellcode:
for i := 0 to RInf.Count -1 do
if not Odd(i) then //gerade Zeilennummer ... |
Re: Versions abfrage Problem!
also entweder macht du das wie über mit schon beschrieben mit einer weiche für grade/ungrade zeilen
oder du lässt das mit DelimitedText weg, gehst zeile für zeile durch und parst jede einzelne zeile (was ich persönlich viel übersichtlicher finde). so in die richtung:
Delphi-Quellcode:
ParseLine(...) wär dann ne eigene function die du dir selber schreiben mußt.
RInf.Text:= htt.Get(H+'/'+D+'/history.config');
for i:=0 to RInf.Count - 1 do begin if ParseLine(RInf[i], VersionsInfo) do begin //versions check hier end; end; |
Re: Versions abfrage Problem!
[edit] falsch verstanden
|
Re: Versions abfrage Problem!
Hallo, ich habe soweit alles geklärt, nun habe ich einen weiteren fehler und ich kann ihn nicht erkennen, evtl ist es noch zu früh ^^
wenn i bei 100 ist gibt es ein fehler ... da es keine datei 0.0100 gibt sondern 0.100 aber ich dachte ich hätte es abgefangen. Meine Theorie: if i > 9 then und if i > 99 then stimmt net ganz?
Delphi-Quellcode:
if i < 10 then
begin Label2.Caption:=RemoteVer+'/0.00'+IntToStr(i); download(H+'/'+D+'/'+vers+'/'+'0.00'+IntToStr(i)) end else if i > 9 then begin Label2.Caption:=RemoteVer+'/0.0'+IntToStr(i); download(H+'/'+D+'/'+vers+'/'+'0.0'+IntToStr(i)) end else if i > 99 then begin Label2.Caption:=RemoteVer+'/0.'+IntToStr(i); download(H+'/'+D+'/'+vers+'/'+'0.'+IntToStr(i)) end |
Re: Versions abfrage Problem!
Halo,
und bei 1000 fängst du wieder an ? Also ich habe das so gemacht. Die einzelnen Nummern per Explode (oder StringList->Delimiter) auslesen. Auf ganze 100er (OK, 1000 kann ich auch nicht ;)) umgemodelt 0 -> 000 1 -> 001 Den String wieder zusammengebaut 1.2.3.4 -> 001.002.003.004 1.2.3.14 -> 001.002.003.014 und normal per String-Vergleich < oder > vergleichen Heiko |
Re: Versions abfrage Problem!
Danke dir :D
ich habs so gelöst
Delphi-Quellcode:
Ihr seit echt klasse und schnell super weiter so ;-)
if (i > 9) and (i < 100) then
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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