Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by alzaimar,
20. Dez 2006
Deine Antwort klang nicht mal im Ansatz nach Kritik, und nur wer bohrt, wird etwas herausfinden, oder?
Den Divisor bei der Bucket-Methode zu finden, ist übrigens sehr leicht: Wenn Du z.B. max. 10MB Speicher für die H-Liste reservieren willst, sind das 2,5Mio Cardinal-Einträge. Also ist
F = MAX (1, Length (S) div 2.500.000)
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by alzaimar,
19. Dez 2006
Hi,
Zunächst hast du natürlich Recht: Für die einmalige Suche ist die triviale Suche per Pos über alle Zeilen natürlich das Beste.
Aber wenn Du das sehr oft machen musst, dann empfielt es sich einfach, ein bischen Vorarbeit zu leisten.
Zu deiner Frage, wie ich auf die '3' komme? Ganz einfach: Das Beispiel besteht aus 9 Zeichen besteht: 2 ist zu blöd und 4 zu hoch (für das Beispiel). Und...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by alzaimar,
19. Dez 2006
Hi oki:
Zunächst mein Ansatz mit einem Beispiel: Die Liste besteht aus drei Zeilen 'ABC', 'DE','FGHI'.
Der String 'S' sieht so aus: 'ABCDEFGHI'.
Die Liste Z sieht so aus: (1,4,6)
Ich suche nach 'E'. Die Position ist 5, liegt also zwischen 4 und 6, ergo ist es die 2.Zeile.
Nun zu meiner Pos.5 Hier hatte ich den Mund etwas zu voll genommen, weil ich an Hash-Verfahren dachte, das wird...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by alzaimar,
19. Dez 2006
Das bezweifle ich, denn
1. Die Get-Methode von MyStringList.Text iteriert über alle Strings und
2. bastelt den Text. Dadrin suchst Du
3. per Pos um dann nochmals mittels
4. IndexOf zu suchen.
Hmm... Ein natives "pos" über alle MyStringList.Text dürfte doch wesentlich schneller sein, auch wenn es nicht befriedigend ist.
Um in einer Liste von Zeilen einen zweiten Teilstring zu suchen,...