![]() |
Re: Höchster Wert aus Registry
Hi,
Ich würde aber für den Anfang Bubblesort empfehlen. Ist natürlich um einiges langsamer aber fürn anfang um einiges verständlicher und einfacher... Und wenn du nicht sooo viele Werte hast dann reicht das eigentlich auch aus... Gruß Neutral General |
Re: Höchster Wert aus Registry
Zitat:
@Neutral General Ok, also Bubblesort versteh ich glaubs, wie kann ich jetzt da es sortiert ist den höchsten Wert auslesen und diesen dann öffnen? |
Re: Höchster Wert aus Registry
Und meine StringList heißt sl.
|
Re: Höchster Wert aus Registry
Ok, jetzt funktionieren beide varianten mit Quicksort und Bubblesort (werde wahrscheinlich Quicksort nehmen da schneller). Wie kann ich jetzt den höchsten Wert aus dem sortierten Array auslesen?
|
Re: Höchster Wert aus Registry
Zitat:
|
Re: Höchster Wert aus Registry
Wie meinst Du das? Wie man auf ein Element des Arrays zugreift, oder wie man den größten Wert im Array ermittelt?
Wie man auf ein Element des Array zugreift weißt Du ja bereits, da Du ja auch schon Daten in das Array geschrieben hast. Also einfach anders herum. Für den zweiten Fall stell Dir einfach vor, das Array wären Uno Karten in Deiner Hand, und Du hast Dir viel Mühe gegeben sie nach dem Wert zu sortieren. Wo würdest Du nun die Karte mit dem höchsten Wert suchen. Wahrscheinlich ganz links oder ganz rechts, oder? - arno |
Re: Höchster Wert aus Registry
Delphi-Quellcode:
Das ist der Sortierungscode und mit dem hier ruf ich ihn auf. Arrayname ist MyIntArray:
procedure Quick_Sort(var A: array of Integer);
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer); var Lo, Hi, Mid, T: Integer; begin Lo := iLo; Hi := iHi; Mid := A[(Lo + Hi) div 2]; repeat while A[Lo] < Mid do Inc(Lo); while A[Hi] > Mid do Dec(Hi); if Lo <= Hi then begin T := A[Lo]; A[Lo] := A[Hi]; A[Hi] := T; Inc(Lo); Dec(Hi); end; until Lo > Hi; if Hi > iLo then QuickSort(A, iLo, Hi); if Lo < iHi then QuickSort(A, Lo, iHi); end; begin QuickSort(A, Low(A), High(A)); end;
Delphi-Quellcode:
Welche Reihenfolge wird hier gemacht und wie lese ich den Wert jetzt aus?
for I:=Low(MyIntArray) to High(MyIntArray) do
MyIntArray[I]:=Random(High(Integer)); Quick_Sort(MyIntArray); |
Re: Höchster Wert aus Registry
Hi,
Im Notfall lässt du dir einfach mal Array[0] und Array[High(Array)] anzeigen und dann siehst du ja spätestens wie rum sortiert wurde ;) Gruß Neutral General |
Re: Höchster Wert aus Registry
Delphi-Quellcode:
Bei diesem Code kommt die Fehlermeldung:
procedure TForm1.Deaktivieren1Click(Sender: TObject);
var regist: TRegistry; reglist : Tstringlist; status, i : integer; MyIntArray: array of Integer; arr: array[0..100] of integer; begin regist:=TRegistry.Create; regist.RootKey:=HKEY_CURRENT_USER; regist.OpenKey('Software\***\*\*', true); reglist := TStringList.Create; status := 1; regist.GetKeyNames(reglist); SetLength(MyIntArray, reglist.Count); for i := 0 to reglist.Count - 1 do begin MyIntArray[i] := StrToInt(reglist.Strings[i]); end; for I:=Low(MyIntArray) to High(MyIntArray) do MyIntArray[I]:=Random(High(Integer)); Quick_Sort(MyIntArray); regist.free; label3.caption := IntToStr(MyIntArray[0]); Project *.exe raised exception class EConvertError with message "4226805319' is not a valid integer value'. Process stopped. 4226805319 ist übrigens der höchste Wert neben ihm gibt es allerdings nur noch 0 werds aber noch auf nem anderen PC probieren dort hat es mehrere. EDIT2: Die Fehlermeldung auf dem anderen PC gab den mittleren Wert als is not a valid iteger value an. |
Re: Höchster Wert aus Registry
Zitat:
Um den höchsten Wert aus einem Array rauszusuchen muss amn es nicht sortieren. Eine Variable mit 0, -1 oder leeren String initialisieren und dann mit allen Werten im Array vergleichen, ist ein Wert höher diesen Wert merken. So kommt man auch ohne sortieren aus. Also:
Delphi-Quellcode:
maxWert := -1
for i := 0 to obereArraygrenze do begin if aArray[i] > maxWert then maxWert := aArray[i] end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 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