![]() |
Indexnummer von Textelement ermitteln
Hi
Wenn man ein Array wie z.B. dieses hier hat...
Delphi-Quellcode:
..., ist es ja einfach, mit den Indexnummern auf den dazugehörigen Text zuzugreifen. Nun möchte ich aber genau den umgekehrten Weg gehen.
var liste:array[0..9] of string;
liste[0]:='A'; liste[1]:='B'; liste[2]:='C'; liste[3]:='D'; liste[4]:='E'; liste[5]:='F'; liste[6]:='G'; liste[7]:='H'; liste[8]:='I'; liste[9]:='J'; Ich will also von jedem der 10 Strings die Indexnummer ermitteln. Der einfachste, aber für den PC aufwändigste Weg, wäre, die Liste 10x stur abzufragen. In diesem Beispiel kam ich gleich mal auf 45 Abfragen. Wenn die Liste aber 500 (und mehr) Einträge enthält, mache ich mir doch schon Sorgen, daß die gesamte Prozedur, zeitlich gesehen, zu umfangreich ausfällt. Hat jemand eine Idee? Hilfreich ist evtl. zu wissen, daß keiner der Strings doppelt vorkommt. |
AW: Indexnummer von Textelement ermitteln
Machbar mit ner Schleife die alle Elemente durchgeht und kuckt, ob das Element gefunden wurde. Bei Fund, den Wert der Schleifenvariable als Ergebnis zurückgeben (das was du willst).
Noch ne Kleinigkeit -> All deine Elemente sind 1 Zeichen lang -> das sind keine Strings (ZeichenKETTEN) sondern Zeichen -> "Char"! Edit: Blöd ists, wenn man keine Schleifen kennt. Da müsste man nun wirklich nen riesengroßen Codeblock schreiben, in dem alle Prüfungen stattfinden. Weiters funktioniert das auch nur mit statischen Arrays (bei beliebig großen nicht!). ![]() |
AW: Indexnummer von Textelement ermitteln
Sofern das Array sortiert ist, kann eine binäre Suche das Ganze auch enorm beschleunigen.
|
AW: Indexnummer von Textelement ermitteln
Man könnte eine Stringliste verwenden. Diese besitzt die Methode IndexOf() um den Index eines Strings zu ermitteln. Zudem kann man in der Eigenschaft Duplicates festlegen, ob/was bei dem Versuch doppelte Einträge zu Erstellen, geschieht.
|
AW: Indexnummer von Textelement ermitteln
Zitat:
dann kann man ![]() ![]() Bevor du aber anfängst einen dieser Algorithmen auf dein Array umzusetzen, kann man auch gleich einen Schritt weitergehen und prüfen, ob es das nicht schon längst gibt. Gibt es natürlich schon und wird je nach Prog-Sprache als HashMap oder Dictionary bezeichnet. ![]() |
AW: Indexnummer von Textelement ermitteln
Danke erstmal für Eure Antworten.
Ich habe etwas mit TStringList experimentiert. Das scheint genau das zu sein, wonach ich suchte. Klappt wunderbar. Noch einen schönen Abend... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 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 by Thomas Breitkreuz