Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mein Problem: TStringlist (https://www.delphipraxis.net/119163-mein-problem-tstringlist.html)

Spiderpig_GER_15 21. Aug 2008 09:36


Mein Problem: TStringlist
 
Hallo,

Mein Ziel ist es ein Vokabeltrainer zu Programmieren.
Mein Problem liegt an folgender Stelle: Der Überprüfung der Eingabe.

Die Vokabeln sind in einer txt Datei so gespeichert:

.
.
.
spiritus //latein^^
Geist, Hauch, Seele //irgendwie so^^
.
.
.

und ich will das er die Eingabe:

"Geist, Hauch, Seele" annimmt, aber genauso:
"Hauch, Geist, Seele" und natürlich
"Seele, Geist, Hauch" usw.

Die drei Übersetzungsmöglichkeiten habe ich in eine TStringlist geladen, um sie dort nach einem Komma zu durchsuchen.
Wenn gefunden, dann soll einem String die Zeichen bis zum Komma zugewiesen werden. Aus der Stringlist soll dann alles bis zum Komma gelöscht werden (ebenso das leerzeichen danach).
Das ganze fängt dann wieder von vorn an. Komma?...ja/nein .... zuweisen...löschen...von vorne usw.

Nur da harperts bei mir. Mit IndexOf kann ich nach Zeilen in einer Stringlist suchen, aber wie mache ich es wenn ich in einer Zeile ein Zeichen suchen will? Und wie kann ich den Text dann löschen?

Hoffe mir kann jemand helfen,

MfG

Spiderpig

generic 21. Aug 2008 09:41

Re: Mein Problem: TStringlist
 
Schau dir mal in der Hilfe zu der TStringList "Values" an.

grips-net 21. Aug 2008 09:47

Re: Mein Problem: TStringlist
 
So mal auf die Schnelle, könnte man folgende Funktion verwenden um dein Problem zu lösen:

Delphi-Quellcode:

function decodeString(sString, sSeperator : string) : TStringList;
var
    iI, iMax : integer;
    sStringAdd : string;
begin
    result := TStringList.Create;
    result.Clear;
    iMax  := length(sString);
    sStringAdd := '';
    for iI := 1 to iMax do
    begin
      if sString[iI] <> sSeperator then
        sStringAdd := sStringAdd + sString[iI]
      else
      begin
        result.Add(sStringAdd);
        sStringAdd := '';
      end;
    end;
    if sStringAdd <> '' then
      result.Add(sStringAdd);
end;
Grüße

Michael

Spiderpig_GER_15 23. Aug 2008 10:40

Re: Mein Problem: TStringlist
 
danke, funktioniert super,

hab nur noch ergänzen müssen das er das Leerzeichen hinter dem Komma löscht,
man gib ja gewöhnlich Text in dieser Form ein

"Hallo,[LEERZEICHEN]das ist ein Test" und nicht so:
"Hallo,das ist ein Test"

:dp:

grenzgaenger 23. Aug 2008 11:37

Re: Mein Problem: TStringlist
 
wir wär es mit

dem oder dem?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 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