![]() |
Unbekannte Einträge aus Stringlist löschen?
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag,
die Zeit ist gekommen, vom passiven Forumsmitglied zum aktiven Poster zu mutieren, xD denn ich suche nun schon mehrere Tage nach einer geeigneten Lösung, um einen mir teilweise unbekannten String aus einer Stringliste zu löschen, da die Position des Strings innerhalb der Liste variert, kann ich nicht über IndexOf gehen, da mir ja der ganze String unbekannt ist. Nun konkret zu meinem Programm: Zitat:
Der Fettgedruckte Eintrag soll nun entfernt werden, allerdings variert die Zahl hinter dem S. Bekannte Einträge wie zum Beispiel M15 lösche ich so über die IndexOf-Funktion:
Delphi-Quellcode:
Bei manchen Einträgen weiß ich das zwischen 2 Einträgen immer der gleiche Abstand ist bzw. immer das selbe steht. So konnte ich schon andere Einträge einfach über den bekannten Index +/- X löschen.
If MyList.Indexof('M15')= -1 then
begin Showmessage('M15 nicht gefunden.'); end else MyList.Delete(MyList.Indexof('M15')); Allerdings verhält sich das nicht immer so, da die Anweisungen die nach dem oben zitierten Block in der Länge variieren. Im Anhang befindet sich nun die Hauptfunktion, damit ihr sehen könnt, wie ich bisher vorgegangen bin. Die Vorsichtsmaßnahmen mit der Auswahl der richtigen Datei begründen sich darin, das wenn man 2x die selbe Datei wählt, ein zweiter Eintrag unter G98 z.B. gelöscht wird, der aber nicht gelöscht werden soll. Ich will jetzt keinen Benutzer als unfähig darstellen, aber man hat sich schnell mal verklickt :-D Da mir das zu heikel ist suche ich nach der anderen Möglichkeit, solche Einträge zu entfernen. Mich wundert es das es wirklich keinen geben soll, der vor mir noch nicht dieses Problem hatte. Deshalb nehme ich stark an, das es eine bessere Methode gibt um so etwas zu realisieren. Die Stringliste war das erste was ich verstanden und ans laufen bekommen hab... :lol: Ich hoffe das war jetzt ein Eintrag, der allen Regeln des Problembeschreibens gerecht wurde :wink: Auch wenn es sehr wahrscheinlich die falsche Kategorie war, aber :pale: ich wusste nicht wohin sonst :cry: MfG Razeng |
Re: Unbekannte Einträge aus Stringlist löschen?
Du könntest die Liste in absteigender Reihenfolge durchiterieren, den aktuellen String nach der gesuchten Zeichenfolge durchsuchen und bei Treffer löschen.
Delphi-Quellcode:
[edit] Wenn die gesuchte Zeichenfolge immer am Zeilenanfang steht, wäre eine explizite Pos-Abfrage auf 1 allerdings ungefährlicher. [/edit]
for i := Liste.Count - 1 downto 0 do
if Pos(Suchtext,Liste[i]) > 0 then Liste.Delete(i); |
Re: Unbekannte Einträge aus Stringlist löschen?
Hallo,
wenn die Kompination bis 'S' immer gleich ist, müsste es zumindesten als String mit der suche durch POS gehen. Gruß Jens [EDIT] So wie DeddyH es geschrieben hat. |
Re: Unbekannte Einträge aus Stringlist löschen?
Vielen Dank für die schnellen Antworten,
hatte leider keine Zeit mehr zwischendurch reinzuschauen. Ich bin nicht auf die Idee gekommen, das man bei Pos auch einfach die Stringliste angeben konnte :oops: Auf die Funktion bin ich bei meiner Suche auch gestoßen. Wieder was gelernt :-D Vielen Dank nochmal! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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