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 von
Textdatei:
M43
G28H0
M15
G50C0.
G98
G19G97S3980M13
G00C159.998
G00Z1.
So schauen die umliegenden Einträge in der Textdatei aus, die ich zu Beginn meines Programms in eine Stringliste lade.
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:
If MyList.Indexof('M15')= -1 then
begin
Showmessage('M15 nicht gefunden.');
end
else MyList.Delete(MyList.Indexof('M15'));
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.
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
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...
Ich hoffe das war jetzt ein Eintrag, der allen Regeln des Problembeschreibens gerecht wurde
Auch wenn es sehr wahrscheinlich die falsche Kategorie war, aber
ich wusste nicht wohin sonst
MfG
Razeng