Autor Beitrag
Mark
Hält's aus hier
Beiträge: 14

WIN 2000, WIN XP
D7 Architect
BeitragVerfasst: Fr 29.10.04 11:50 
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.
ausblenden Delphi-Quelltext
1:
 StringReplace(#13#10,'',memoStrList.Text[i]);					


quasi so irgendwie ;)

kann mir da vielleicht jemand helfen. wäre nett :lol: :)

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: 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

_________________
In the beginning was the word.
And the word was content-type: text/plain.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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.
ausblenden Delphi-Quelltext
1:
  NeuerString := StringReplace(DeinString, #13#10'', [rfReplaceAll]);					

Sollte funktionieren.
Mark Threadstarter
Hält's aus hier
Beiträge: 14

WIN 2000, WIN XP
D7 Architect
BeitragVerfasst: 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.
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 14

WIN 2000, WIN XP
D7 Architect
BeitragVerfasst: 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 ->
ausblenden 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.