![]() |
Füllung einer Zahlenliste
Sorry für den blöden Titel, aber was besseres fällt mir nicht ein.
Ich hab ein folgendes Problem: ich habe eine sortierte Liste mit Zahlen, z.B. 1,2,5,100,203,999, bis 999. In diese Liste muss ich neue Zahlen schreiben. Wenn diese Zahl gibt's in dieser Liste nicht, dann schreibe ich sie einfach rein und sortiere. Aber wenn diese Zahl schon vergeben ist, z.B. 100, dann muss ich meine Zahl auf kleinere noch nicht besetzte Zahl in der Liste ändern, in meinem Beispiel ist es Zahl 3. Und jetzt die Frage, wie kann ich diese kleinere noch nicht besetzte Zahl schnell finden? Ich habe ein Paar Gedanken, aber das ist alles total langsam. Danke. |
Re: Füllung einer Zahlenliste
Mir fällt spontan nur ein, die Listbox von vorne durchzugehen und zu prüfen, ob die Zahl am entsprechenden Index Index+1 ist. Ist das nicht der Fall, kannst du Index + 1 einfügen. (Vorausgesetzt, du startest mit 1, und nicht mit 0)
Also:
Delphi-Quellcode:
Sollte aber auch so funktionieren.
For i := 0 To ListBox1.Items.Count - 1 Do
If StrToInt(ListBox1.Items[i]) > i+1 Then break; //i+1 ist die Zahl, die eingefügt werden muß //i ist der Index, bei dem eingefügt werden muß
Delphi-Quellcode:
Ist aber jetzt alles nur aus dem Kopf schludrig hingeschrieben und kann noch Denkfehler beinhalten. ;)
i := 0;
While (i <= ListBox1.Items.Count - 1) and (StrToInt(ListBox1.Items[i]) = i+1) Do inc(i); //i ist die Zahl, die eingefügt werden muß //i-1 ist der Index, bei dem eingefügt werden muß //Diverse Edits :roll: Kleinere Schreibfehler gefixt und Kleinigkeiten eingefügt :stupid: |
Re: Füllung einer Zahlenliste
Zitat:
wenn ich das richtig lese musst Du nicht die kleinere sondern die kleinste nicht "besetzte" Zahl einfügen oder? |
Re: Füllung einer Zahlenliste
Zitat:
|
Re: Füllung einer Zahlenliste
OK, aber meine Antwort wird ignoriert... :shock:
|
Re: Füllung einer Zahlenliste
Zitat:
irgendwie erkenne ich bei deinem Code nicht was er zur Lösung des Problemes bringen soll :stupid: @egal: Wo ist denn das Hauptproblem? Bei herausfinden ob eine Zahl schon in deiner sortierten Liste (wie ist diese eigentlich aufgebaut) vorhanden ist oder beim bestimmen der kleinsten nicht vorhandenen Zahl? |
Re: Füllung einer Zahlenliste
Zitat:
|
Re: Füllung einer Zahlenliste
Zitat:
Inwiefern löst das das Problem nicht? :gruebel: Zitat:
//Edit: Aber ganz wichtig: Die For-Schleife muß bis ListBox1.Items.Count - 1 gehen. Das is mit durchgerutscht! |
Re: Füllung einer Zahlenliste
Zitat:
|
Re: Füllung einer Zahlenliste
Also sofern ich dein Problem wirklich richtig verstanden habe (Sharky macht mich da ganz wuschig ;)), sollte mein Code es absolut tun. Besonders viel schneller sollte es auch eigentlich nicht gehen, denn du hast ja nur 2 Möglichkeiten:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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