AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Unbekannte Einträge aus Stringlist löschen?
Thema durchsuchen
Ansicht
Themen-Optionen

Unbekannte Einträge aus Stringlist löschen?

Ein Thema von Razeng · begonnen am 9. Apr 2009 · letzter Beitrag vom 12. Apr 2009
Antwort Antwort
Razeng

Registriert seit: 27. Okt 2008
2 Beiträge
 
#1

Unbekannte Einträge aus Stringlist löschen?

  Alt 9. Apr 2009, 17:25
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
Angehängte Dateien
Dateityp: txt hauptfunktion_165.txt (1,6 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Unbekannte Einträge aus Stringlist löschen?

  Alt 9. Apr 2009, 17:28
Du könntest die Liste in absteigender Reihenfolge durchiterieren, den aktuellen String nach der gesuchten Zeichenfolge durchsuchen und bei Treffer löschen.
Delphi-Quellcode:
for i := Liste.Count - 1 downto 0 do
  if Pos(Suchtext,Liste[i]) > 0 then
    Liste.Delete(i);
[edit] Wenn die gesuchte Zeichenfolge immer am Zeilenanfang steht, wäre eine explizite Pos-Abfrage auf 1 allerdings ungefährlicher. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Unbekannte Einträge aus Stringlist löschen?

  Alt 9. Apr 2009, 17:30
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.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Razeng

Registriert seit: 27. Okt 2008
2 Beiträge
 
#4

Re: Unbekannte Einträge aus Stringlist löschen?

  Alt 12. Apr 2009, 13:06
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 Auf die Funktion bin ich bei meiner Suche auch gestoßen.

Wieder was gelernt
Vielen Dank nochmal!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz