Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Hilfe zur Stringlist (https://www.delphipraxis.net/61571-hilfe-zur-stringlist.html)

waschlap 23. Jan 2006 11:57


Hilfe zur Stringlist
 
Hi Leute ich habe eine Frage zu Stringlisten und zwar ich eine Stringliste und da heißt ein Wort
z.B:"Vorraussetzung" und ich habe keine Ahnung wo dieses in meiner Stringlist auftaucht und würde aber gerne danach ein Wort beispielsweise "test" einfügen. Jetzt die Frage ist das einfach möglich? Ich finde leider selbst keine Lösung.

Mfg
Manu

Klaus01 23. Jan 2006 12:03

Re: Hilfe zur Stringlist
 
den Ausdruck suchen und finden sollte mit einer Schleife gehen.

for i:=1 To sl.count dO
begin
//vergleiche sl[i] mit gesuchtem Ausdruck
end;

Du kannst mit insert etwas in die Stringliste einfügen
Angenommen der Ausdruck befindet sich an der Position i
dann kannst Du mit sl.insert(i+1,'...') etwas dahinter einfügen.

Grüße
Klaus

Jelly 23. Jan 2006 12:05

Re: Hilfe zur Stringlist
 
Zum Suchen von Einträgen kannst du
Delphi-Quellcode:
IndexOf
deiner Stringlist verwenden. Zum Einfügen eines Eintrags nimmst Du Insert.

Wie Du die beiden Funktionen anwendest steht in der Online Hilfe.

dfried 23. Jan 2006 12:06

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von Klaus01
for i:=1 To sl.count dO
begin
//vergleiche sl[i] mit gesuchtem Ausdruck
end;

du musst von "i := 0 to sl.count-1" laufen sonst knallts :-)

waschlap 23. Jan 2006 12:46

Re: Hilfe zur Stringlist
 
Delphi-Quellcode:

for i:=1 To sl.count dO
begin
//vergleiche sl[i] mit gesuchtem Ausdruck
end;

Das verstehe ich nicht damit gehe ich doch die Zeilen durch, aber wie finde ich den Ausdruck? :wall:
z.B: "Verbesserung" der evtl irgendwo in einer Zeile Mittig steht.

Um eine Antwort wäre ich euch echt dankbar.

Mfg
Manu

Khabarakh 23. Jan 2006 13:28

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von waschlap
Um eine Antwort wäre ich euch echt dankbar.


tigerman33 23. Jan 2006 13:35

Re: Hilfe zur Stringlist
 
Wenn der Ausdruck in der Mitte einer Zeile steht, wird dir auch sicherlich Delphi-Referenz durchsuchenPos weiterhelfen.

waschlap 23. Jan 2006 13:38

Re: Hilfe zur Stringlist
 
Ich frage mich wie mir das weiterhelfen soll was du mir geschrieben hast? @Khabarakh

Mfg
Manu

Klaus01 23. Jan 2006 13:42

Re: Hilfe zur Stringlist
 
IndexOf liefert Dir die Indexposition des gesuchten Ausdrucks.
Insert(position,'ausdruck') kannst Du einen Ausdruck in die Stringlist schreiben.

Damit sollte eigentlich Dein Problem zu erschlagen sein.

Grüße
Klaus

waschlap 23. Jan 2006 13:53

Re: Hilfe zur Stringlist
 
Also wenn ich sage :

Delphi-Quellcode:
  showmessage(inttostr(wliste.indexOf('Office')));
Kommt lediglich -1 raus obwohl dieses Wort in meiner stringlist steht.

Folgendes steht in dieser Zeile: - Office Kenntnisse

Wenn ich das wie oben steht ausführe bekomme ich echt nur -1 raus.

Verzweifle schön langsam daran, es kann es doch net geben das man das nicht einfach auslesen kann.

Mit Pos versuche ich es gerade aber bin mir nicht sicher ob das klappen wird.

Mfg

Manu

mkinzler 23. Jan 2006 13:56

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von waschlap
Also wenn ich sage :

Delphi-Quellcode:
  showmessage(inttostr(wliste.indexOf('Office')));
Kommt lediglich -1 raus obwohl dieses Wort in meiner stringlist steht.

Folgendes steht in dieser Zeile: - Office Kenntnisse

Wenn ich das wie oben steht ausführe bekomme ich echt nur -1 raus.

Verzweifle schön langsam daran, es kann es doch net geben das man das nicht einfach auslesen kann.

Mit Pos versuche ich es gerade aber bin mir nicht sicher ob das klappen wird.

Mfg

Manu

Index sucht auchj nach 'Office' und nicht nach 'Office - Kenntnisse'.
In diesem Fall mußt du wie beschrieben die einzelnen Einträge durchgehen und mit pos überprüfen ob gesuchtes Wort in Eintrag ist.

Klaus01 23. Jan 2006 14:05

Re: Hilfe zur Stringlist
 
In dem Fall ist 'Office Kenntnisse' ein String Deiner Stringlist
und IndexOf liefert -1 zurück weil ja der String 'Office Kenntnisse' heißt
und nicht 'Office'. IndexOf sucht nicht nach einer Teilmenge.

Delphi-Quellcode:
 i:=0;
 found:=false;
 while (i <= wslist.count-1) AND NOT found DO
   begin
     if pos('suchstring',wslist[i]) <> 0 then
       found:=true;
     inc(i);
   end;

if found then
   position:=i-1
else
   showMessage('...');
Vielleicht geht es ja so?

Grüße
Klaus

DP-Maintenance 23. Jan 2006 14:05

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ist ja eine Frage zu Delphi

freak4fun 23. Jan 2006 14:06

Re: Hilfe zur Stringlist
 
Hallo :hi:,
sowas?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to ListBox1.Count - 1 do
    if Pos('office', ListBox1.Items.Strings[i]) <> 0 then
      ShowMessage(IntToStr(i) + ': ' + ListBox1.Items.Strings[i]);
end;
Ist sehr ähnlich dem Beispiel im Vorpost. ;)

MfG
freak

TeronG 23. Jan 2006 14:25

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von freak4fun
Hallo :hi:,
sowas?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to ListBox1.Count - 1 do
    if Pos('office', ListBox1.Items.Strings[i]) <> 0 then
      ShowMessage(IntToStr(i) + ': ' + ListBox1.Items.Strings[i]);
end;
Ist sehr ähnlich dem Beispiel im Vorpost. ;)

MfG
freak

Netter Code .. funtzen auch (das mit dem durchlaufen der gesammten liste) aber warum benutzt du/ihr nicht .IndexOf('blub') ist doch schöner zu Handeln :gruebel:

freak4fun 23. Jan 2006 14:30

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von TeronG
Netter Code .. funtzen auch (das mit dem durchlaufen der gesammten liste) aber warum benutzt du/ihr nicht .IndexOf('blub') ist doch schöner zu Handeln :gruebel:

So weit ich das verstanden hab, greift .IndexOf('office') hier nicht:
Zitat:

asdf
- office anwendung
heimatort
:: office?
was auch immer
MfG
freak

waschlap 23. Jan 2006 14:35

Re: Hilfe zur Stringlist
 
Weil ich nur einen Teilstring suche und das funzt net mit indexof.


Mfg
Manu

3_of_8 23. Jan 2006 14:37

Re: Hilfe zur Stringlist
 
Wie wärs mit memo1.text:=stringreplace(memo1.text,'wort1','wort 1wort2',[srReplaceAll]);?

waschlap 23. Jan 2006 14:42

Re: Hilfe zur Stringlist
 
Erstmal danke für eure Hilfe, ich bin mittlerweile soweit, dass er mir die richtige stelle über ein showmessage ausgibt. Nur wenn ich die ganze Sache einfügen will sprich:

Delphi-Quellcode:

If Pos(' ', wliste.text) > 0 then
         test:= Pos('Office', wliste.text);
wliste.inert(test,'keine ahnuge');
schreibt er es mir in zeile 52 weil test = 52 entspricht.

Wie kann ich jezt sagen das er es an Zeichenstelle 52 es hineinschreibt??

Mfg
Manu

freak4fun 23. Jan 2006 14:44

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von 3_of_8
Wie wärs mit memo1.text:=stringreplace(memo1.text,'wort1','wort 1wort2',[srReplaceAll]);?

Was hat das mit der Stringliste zu tun? :gruebel:

MfG
freak

3_of_8 23. Jan 2006 14:44

Re: Hilfe zur Stringlist
 
Probier halt mal meine Lösung aus:

wliste.text:=StringReplace(wliste.text,'Office','K eine Ahnung',[srReplaceAll]);

EDIT: Memo, Stringliste, auch egal. Jetzt müsste es gehen.

freak4fun 23. Jan 2006 14:53

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von 3_of_8
wliste.text:=StringReplace(wliste.text,'Office','K eine Ahnung',[srReplaceAll]);

Delphi-Quellcode:
wliste.Items.Text := StringReplace(wliste.Items.Text, 'Office', 'Keine Ahnung', [rfReplaceAll]);
Wobei auf Groß- und Kleinschreibung zu achten ist. ;)

MfG
freak

3_of_8 23. Jan 2006 14:54

Re: Hilfe zur Stringlist
 
Korrekt. Wenn man das nicht will, einfach noch ein Flag dazu tun, einfach mal in die OH gucken unter StringReplace.

waschlap 23. Jan 2006 14:57

Re: Hilfe zur Stringlist
 
Hi 3 of 8,


wliste.text:=StringReplace(wliste.text,'Office','K eine Ahnung',[srReplaceAll]);

das funzt net kommt folgende Felhermeldung :

[Fehler] uMain.pas(282): Undefinierter Bezeichner: 'srReplaceAll'
[Fehler] uMain.pas(282): Inkompatible Typen: 'Enumeration' und 'Integer'

und das andere:
wliste.Items.Text := StringReplace(wliste.Items.Text, 'Office', 'Keine Ahnung', [rfReplaceAll]);

geht auch nicht, warum kann ich leider nicht sagen da ich nicht so viel ahnnung habe.

Mfg
Manu

P.s Hat jmd noch ne Idee?

freak4fun 23. Jan 2006 15:01

Re: Hilfe zur Stringlist
 
Meine Aussage bezieht sich auf eine Stringlist. Der Text wird von dieser in dieselbige geschrieben. 3 of 8 bezieht sich auf ein Memo. [srReplaceAll] ist wahrscheinlich nur ein Tippfehler, es mus [rfReplaceAll] heißen. Das erkenntst du auch selbst sofort, wenn du die Hilfe benutzt. ;)

MfG
freak

waschlap 23. Jan 2006 15:07

Re: Hilfe zur Stringlist
 
Naja ich hab im mom das so drin stehen:
Delphi-Quellcode:
type
  listenarray = record
        zeile:TStringlist;
  end;
  TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);

und unten:

Delphi-Quellcode:
wliste.Text := StringReplace(wliste.Text, 'Office', 'Keine Ahnung', [rfReplaceAll]);
[Fehler] uMain.pas(284): Inkompatible Typen

Nur das geht auch nicht weiß du vll warum??

Manu

freak4fun 23. Jan 2006 15:11

Re: Hilfe zur Stringlist
 
Zitat:

TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
Wofür brauchst du das denn? Nimm das mal raus. ;)
Und von welchen Typ ist das wliste?


MfG
freak

waschlap 23. Jan 2006 15:13

Re: Hilfe zur Stringlist
 
wliste ist eine stringlist.

Mfg
Manu

freak4fun 23. Jan 2006 15:15

Re: Hilfe zur Stringlist
 
Funktioniert es jetzt? Wenn nicht kannste mir mal deinen Sourcecode senden, damit das läuft. Natürlich nur wenn du willst. ;)

MfG
freak

waschlap 23. Jan 2006 15:18

Re: Hilfe zur Stringlist
 
Hallo christian,

also des funktioniert ich danke dir für deine hilfe. :dancer:

Mfg
Manu

Übrigens danke auch an alle anderen.

Jelly 23. Jan 2006 16:02

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von TeronG
Netter Code .. funtzen auch (das mit dem durchlaufen der gesammten liste) aber warum benutzt du/ihr nicht .IndexOf('blub') ist doch schöner zu Handeln :gruebel:

Weil wir hier ja nicht ahnen können, dass Du Dir nicht die Mühe machst den ganzen Thread zu lesen :zwinker:

TeronG 23. Jan 2006 16:32

Re: Hilfe zur Stringlist
 
Zitat:

Zitat von Jelly
Zitat:

Zitat von TeronG
Netter Code .. funtzen auch (das mit dem durchlaufen der gesammten liste) aber warum benutzt du/ihr nicht .IndexOf('blub') ist doch schöner zu Handeln :gruebel:

Weil wir hier ja nicht ahnen können, dass Du Dir nicht die Mühe machst den ganzen Thread zu lesen :zwinker:

zumindest nicht alles :oops:
allerdings DU auch nicht ... sonnst hätteste gemerkt, daß ich schon n paar Antworten bekommen habe :mrgreen:

naja EIGENTLICH dachte ich, daß IndexOf auch teil-strings findet ... war wohl falsch ....


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