AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu WideStringReplace

Ein Thema von gaisser · begonnen am 17. Aug 2011 · letzter Beitrag vom 18. Aug 2011
Antwort Antwort
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#1

Frage zu WideStringReplace

  Alt 17. Aug 2011, 17:13
Hallo Zusammen,

ich verzweifele hier noch.

Ich habe eine Datei mit Text, die ich über eine WideStringlist reinlade.
Nun habe ich ein MemoText(Unicode), den ich mittels WideStringReplace ersetzten will.
Also
so:
Delphi-Quellcode:
     if FileExists(IncludeTrailingBackslash(StartPath) + 'PKMailErsetzung\MailErsetzung_' + PKUser + '.mail') then
        begin
          xErsetzung := TStringList.Create;
          xErsetzung.LoadFromFile(IncludeTrailingBackslash(StartPath)
              + 'PKMailErsetzung\MailErsetzung_' + PKUser + '.mail');

          if xErsetzung.Text <> 'then
          begin
            body.Text := WideStringReplace(body.Text, xErsetzung.Text, '', [rfReplaceAll, rfIgnoreCase]);
            showmessage(xErsetzung.Text);
            showmessage(body.Text);
          end;
          xErsetzung.Free;
        end;
Das funktioniert so irgendwie nicht.
Geht das denn nicht, wenn ich Strings mit Strings ersetzten will ????

Achso: ich habe RadStudio 2010
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Frage zu WideStringReplace

  Alt 17. Aug 2011, 17:28
In der Hilfe steht:
Zitat:
WideStringReplace ersetzt im String S die Vorkommen des in OldPattern angegebenen Teilstrings durch den in NewPattern angegebenen Teilstring.
...
Anmerkung: Diese Funktion ist für WideString-Variablen entwickelt. Um die Ersetzung in einem UnicodeString-Kontext auszuführen, verwenden Sie die Funktion StringReplace. Um die Ersetzung in einem AnsiString-Kontext auszuführen, verwenden Sie ebenfalls die Funktion StringReplace.

Anmerkung: Das rekursive Ersetzen von Teilstrings wird nicht unterstützt. Das bedeutet Folgendes: Wenn die Ersetzung von OldPattern eine neue Übereinstimmung für NewPattern ergibt, wird diese Übereinstimmung nicht ersetzt.

Um alle Vorkommen des Teilstrings in dem String zu ersetzen, können Sie auch die Funktionen WideReplaceStr (mit Berücksichtigung der Groß-/Kleinschreibung) oder WideReplaceText (ohne Berücksichtigung der Groß-/Kleinschreibung) verwenden.
Funktioniert es mit einer der genannten Alternativen?
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
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Frage zu WideStringReplace

  Alt 17. Aug 2011, 19:07
Nein tut es oeider nicht....

Das Problem ist , ich will ne Mail von OL in mein Programm reinladen,
die Signatur soll aber nicht miterscheinen.

Vielleicht hat mir hier noch jemand einen anderen Anhaltspunkt
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#4

AW: Frage zu WideStringReplace

  Alt 17. Aug 2011, 19:50
Das funktioniert so irgendwie nicht.
Was funktioniert nicht?
Wenn es einfach nur nich ersetzt wird, dann stimmt wohl der Text nicht überein, was du nur selber prüfen kannst.


Und warum nicht einfach nur Delphi-Referenz durchsuchenStringReplace?
Seit Delphi 2009 ist das schon alles auf Unicode eingestellt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Aug 2011 um 19:52 Uhr)
  Mit Zitat antworten Zitat
gaisser

Registriert seit: 7. Sep 2003
Ort: Dotternhausen(Baden Württemberg)
64 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Frage zu WideStringReplace

  Alt 18. Aug 2011, 07:20
Das Problem ist das wenn ich in meiner Textdatei

z.B.

Zitat:
Mit freundlichen Grüßen

Der Mann vom Mond
drinn habe, dann habe ich ja ein Carrige Return, das scheint dann aber StringReplace irgendwie zu ignorieren????

Ich kann auch nicht Zeile für Zeile durchgehen, weil der TExt "Mit freundlichen Grüßen" ja in anderer Form vorkommen kann.
Jochen
Nicht alles dem System anlasten, meistens sitzt der Fehler vor den Tasten !!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Frage zu WideStringReplace

  Alt 18. Aug 2011, 07:42
Sind das evtl. unterschiedliche Carriage Returns (also nicht #13#10, sondern z.B. UNIX-mäßig nur #10)? In dem Fall hättest Du eben keine exakte Übereinstimmung, weshalb dann auch nicht ersetzt wird. Sollte es wirklich daran liegen, kannst Du ja sichergehen, indem Du zuerst alle #13#10 durch #10, dann alle #13 (CR von MacOS AFAIK) durch #10 ersetzt und anschließend alle #10 durch sLineBreak. Geht es dann mit StringReplace?
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 himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#7

AW: Frage zu WideStringReplace

  Alt 18. Aug 2011, 08:16
Oder beide Strings mal kurz durch eine TStringList jagen, dann werden die Zeilenumbrüche auch angepaßt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 01:56 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