Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Sucht in Gesamtstring nach AltString und ersetzt ihn mit Neu (https://www.delphipraxis.net/10883-sucht-gesamtstring-nach-altstring-und-ersetzt-ihn-mit-neu.html)

Nalincah 27. Okt 2003 13:38


Sucht in Gesamtstring nach AltString und ersetzt ihn mit Neu
 
Delphi-Quellcode:
uses sysutils, Windows;

function ErsetzeString(AltString:String; NeuString:String; GesamtString:String):String;
var
  PosAlt,LengthAlt:Integer;
begin
  while not pos(AltString,GesamtString) <> -1 do
  begin
    PosAlt := pos(AltString,GesamtString);
    LengthAlt := Length(AltString);
    Delete(GesamtString,PosAlt,LengthAlt);
    Insert(NeuString,GesamtString,PosAlt);
  end;
  Result := GesamtString;
end;

Sanchez 27. Okt 2003 13:42

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
oder:
Delphi-Quellcode:
  neuerstring := StringReplace(GesamtString, altstring, neustring, [rfReplaceAll]);

Nalincah 27. Okt 2003 13:43

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
WAHH..Das passiert wenn man das Rad neu erfinden will...VERDAMMT!!!

Sanchez 27. Okt 2003 13:44

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
... der Wille zählt :zwinker:

mirage228 27. Okt 2003 13:45

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
Das Problem ist, das es bei Leuten mit z.B. Delphi 3, wie mir, kein(!) StringReplace gibt ;-)

mfG
mirage228

Tom 27. Okt 2003 13:46

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
Wenn man das Rad neu erfindet, sollte man es richtig tun. Aus der Delphi-Hilfe zu Pos:
Zitat:

Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.
Was soll das -1 im obigen Source?

Nalincah 27. Okt 2003 13:53

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
Jupp, stimmt...Hab mich schon gewundert warum das manchmal spinnt

Nalincah 27. Okt 2003 13:56

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
StringReplace hat aber einen kleine Schönheitsfehler:

Der String wird nur einmal ersetzt..Wenn AltString später nochmal vorhanden ist, wird da nichts ersetzt

Tom 27. Okt 2003 13:57

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
Du weist, dass Dein Source spinnt und veröffentlichst diesen in der Code-Libary? :roll:

Sanchez 27. Okt 2003 13:58

Re: Sucht in Gesamtstring nach AltString und ersetzt ihn mit
 
mit rfReplaceAll werden alle vorkommen ersetzt. Hier mal ein Auszug aus der OH

Zitat:

type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

Beschreibung

Mit StringReplace ersetzen Sie in dem angegebenen String den im Parameter OldPattern festgelegten Sub-String mit dem im Parameter NewPattern übergebenen neuen Sub-String. StringReplace nimmt an, daß der String Multibyte-Zeichen enthalten kann.

Wenn im Parameter Flags nicht rfReplaceAll enthalten ist, wird nur das erste Vorkommen von OldPattern im String S ersetzt. Andernfalls werden alle Instanzen von OldPattern durch NewPattern ersetzt.

Wenn der Parameter Flags rfIgnoreCase enthält, wird die Groß-/Kleinschreibung nicht berücksichtigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz