Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Letzten Eintrag in Stringlist ermitteln
Kralle - Di 15.11.11 15:36
Titel: Letzten Eintrag in Stringlist ermitteln
Hallo,
ohne die Liste in einer Schleife durchlaufen zu lassen, gibt es noch einen weg festzustellen, in welcher Zeile sich der Letzte Inhalt befindet?
Leerzeilen in der Mitte gibt es nicht.
MfG
Heiko
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 15.11.2011 um 16:28
Nersgatt - Di 15.11.11 15:44
Ja, die Stringlist hat die Eigenschaft "Count". Die gibt an, wie viele Einträge in der Liste sind.
Aber da die Liste 0-basiert ist, musst Du aufpassen. Der letzte Eintrag ist somit liste.strings[list.count - 1];
jaenicke - Di 15.11.11 18:16
Ich denke mal es geht um Leerzeilen, oder?
Und da gibt es theoretisch schon Möglichkeiten, aber die schnellste ist in einer Schleife von hinten angefangen nachzuschauen wie du meintest.
Gausi - Di 15.11.11 18:56
Oder man sucht den ersten Leerstring mit einer Binärsuche, wenn wirklich mittendrin keine Leerzeilen vorkommen.
Kralle - Mi 16.11.11 06:46
Moin,
Gausi hat folgendes geschrieben : |
| Oder man sucht den ersten Leerstring mit einer Binärsuche, wenn wirklich mittendrin keine Leerzeilen vorkommen. |
Hast Du ein Beispiel für diese Suche?
MfG
Heiko
Gausi - Mi 16.11.11 07:49
Die gängige Binärsuche muss man ja etwas anpassen, da man ja nicht abbricht, wenn das Element gefunden wurde, sondern erst dann, wenn sich linke und rechte Suchgrenze treffen.
Ich würde das so probieren
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| links := 0; rechts := Liste.count-1; solange rechts > links mache mitte := (links + rechts) DIV 2; wenn Liste[mitte] = '' dann rechts := mitte - 1 else links := mitte + 1; ende ergebnis := links/rechts +/- 1; // da müsste man nochmal genauer schauen, wie das aussieht, //ggf noch eine Fallunterscheidung |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!