Entwickler-Ecke
Sonstiges (Delphi) - StringReplace ?!
Mark - Fr 29.10.04 11:50
Titel: StringReplace ?!
Hi,
ich bekomme die Funktion StringReplace nich so richtig zum laufen. Ich hab einen Eintrag in einer Stringliste (c:\blabla)... diesen eintrag will ich als datei öffnen lassen. das geht aber nich am ende der liste noch ein #13#10 steht. ich will das mit stringreplace entfernen in dem ich #13#10 einfach durch '' ersetze... aber ich bekomms nich so richtig hin.
Delphi-Quelltext
1:
| StringReplace(#13#10,'',memoStrList.Text[i]); |
quasi so irgendwie ;)
kann mir da vielleicht jemand helfen. wäre nett :lol: :)
Moderiert von
Tino: Delphi-Tags hinzugefügt.
Delete - Fr 29.10.04 11:54
Zitat: |
aber ich bekomms nich so richtig hin
|
Könntest du dies etwas näher ausführen oder sollen wir jetzt raten, was nicht geht und wie es sich zeigt? :roll: "Geht nicht.", "Es kommen Fehler." sind immer äußert hilfreiche Fehlerbeschreibungen.
Ich werfe mal einen Blick in meine Glaskugel, da sist in diesem Fall die Delphi Hilfe, und die sagt mir das
StringReplace eine Funktion ist. Und Funktionen haben die Eigenart etwas
zurückzugeben, was steht meinst in der Hilfe.
matze - Fr 29.10.04 12:27
für deinen Fall könnest du auch mal die Funktion TRIM versuchen. ich glaube die macht das auch
jasocul - Fr 29.10.04 12:35
OH hilft:
Zitat: |
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
|
Du siehst, es ist eine Funktion. Das Ergebnis der Ersetzung wird als Funktionsergebnis zurück gegeben. Der erste Parameter ist der String, der durchsucht werden soll. Da const davor steht, wird der auch nicht verändert!
In OldPattern steht dein Suchbegriff und in NewPattern dein neuer Begriff.
Die Flags sprechen für sich selbst.
Delphi-Quelltext
1:
| NeuerString := StringReplace(DeinString, #13#10, '', [rfReplaceAll]); |
Sollte funktionieren.
Mark - Fr 29.10.04 12:58
jasocul hat folgendes geschrieben: |
OH hilft:
Zitat: |
type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
|
Du siehst, es ist eine Funktion. Das Ergebnis der Ersetzung wird als Funktionsergebnis zurück gegeben. Der erste Parameter ist der String, der durchsucht werden soll. Da const davor steht, wird der auch nicht verändert!
In OldPattern steht dein Suchbegriff und in NewPattern dein neuer Begriff.
Die Flags sprechen für sich selbst.
Delphi-Quelltext 1:
| NeuerString := StringReplace(DeinString, #13#10, '', [rfReplaceAll]); |
Sollte funktionieren. |
danke das halt geholfen... nur noch eins, mein "NeuerString" hat nach dem ausführen den Wert #0 anstatt c:\blabla ... und dann sagt er natürlich das er die datei nich finden kann. rofl :?
jasocul - Fr 29.10.04 13:00
Hmm, vielleicht war es nicht gut genug von mir beschrieben.
Statt DeinString sollte natürlich memoStrList.Text[i] dort stehen, wenn ich dein Beispiel zu Grunde lege.
Mark - Fr 29.10.04 13:02
jasocul hat folgendes geschrieben: |
Hmm, vielleicht war es nicht gut genug von mir beschrieben.
Statt DeinString sollte natürlich memoStrList.Text[i] dort stehen, wenn ich dein Beispiel zu Grunde lege. |
doch das hab ich schon angepasst ->
Delphi-Quelltext
1:
| s := StringReplace(memoStrList.Text[i],#$D#$A,'',[rfReplaceAll]); |
aber s is wie gesagt nach dieser zeile #0 obwohl er memoStrList.Text richtig einliest (c:\blabla)
EDIT: hat sich erledigt... bei einer Stringlist kann man nich mit .text[i] arbeiten. wenn man das macht spuckt er einem nich die zeile aus sondern zeichen für zeichen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!