Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie kann ich ' aus einem string entfernen? (https://www.delphipraxis.net/31745-wie-kann-ich-aus-einem-string-entfernen.html)

endeffects 13. Okt 2004 10:25


wie kann ich ' aus einem string entfernen?
 
hallo,

hallo ich möchte diese zeichenkette \' aus einem string entfernen

folgendes funktioniert natürlich nicht:
Dumplist:= StringReplace(Dumplist, '\'', '', [rfReplaceAll]);

sakura 13. Okt 2004 10:29

Re: wie kann ich ' aus einem string entfernen?
 
Zitat:

Zitat von endeffects
folgendes funktioniert natürlich nicht

Aber:

Delphi-Quellcode:
Dumplist:= StringReplace(Dumplist, '\''', '', [rfReplaceAll]);
...:cat:...

Gollum 13. Okt 2004 10:31

Re: wie kann ich ' aus einem string entfernen?
 
Hallo,

folgendes sollte funktionieren:
Delphi-Quellcode:
  Dumplist:= StringReplace(Dumplist, '\''', '', [rfReplaceAll]);
Da in Delphi das Hochkomma (') als Stringkennzeichner fungiert, musst Du das Hochkomma in diesem Fall verdoppeln.

endeffects 13. Okt 2004 10:40

Re: wie kann ich ' aus einem string entfernen?
 
oh danke für die schnelle hilfe,
eine frage dazu hab ich allerdings noch,

ich versuche grad mehrere dump files die teilweise sehr groß
sind von formatierungen zu befreien, dazu lade ich die
dateien in eine stringliste und geh diese dann zeile
für zeile durch, das problem das ich da nun sehe ist das
ich jede zeile für jede zeichenkette x die ersetzt werden soll
x-mal durchlaufen muss, was dann natürlich x-mal so lange dauert
und mit entsprechendem rechenaufwand verbunden ist,
gibt es dazu vielleicht einen besseren weg?

Delphi-Quellcode:
  List := TStringList.Create;
  try
    List.LoadFromFile(FFileName);
    for i:= List.Count - 1 downto 0 do begin
      Dumplist:= List[i];
        Dumplist:= StringReplace(Dumplist, '[[', '', [rfReplaceAll]);
        Dumplist:= StringReplace(Dumplist, ']]', '', [rfReplaceAll]);
        Dumplist:= StringReplace(Dumplist, '\n', '', [rfReplaceAll]);
        Dumplist:= StringReplace(Dumplist, '\''', '', [rfReplaceAll]);
      List[i]:= Dumplist;
    end;
    List.SaveToFile(FFileName2);

endeffects 13. Okt 2004 10:51

Re: wie kann ich ' aus einem string entfernen?
 
wie befürchtet stirbt die anwendung den performance-tod
schon bei einer 2mb datei =(

CenBells 13. Okt 2004 11:26

Re: wie kann ich ' aus einem string entfernen?
 
hi,

du könntest auch den gesamten string auf einmal in stringreplace reinstecken...

Delphi-Quellcode:
  List := TStringList.Create;
  try
    List.LoadFromFile(FFileName);
    Dumplist := List.Text;
    Dumplist := StringReplace(Dumplist, '[[', '', [rfReplaceAll]);
    Dumplist := StringReplace(Dumplist, ']]', '', [rfReplaceAll]);
    Dumplist := StringReplace(Dumplist, '\n', '', [rfReplaceAll]);
    Dumplist := StringReplace(Dumplist, '\''', '', [rfReplaceAll]);
    List.Text := Dumplist;
    List.SaveToFile(FFileName2);
Ich weiß zwar nicht, wieviel das hilft, aber einen test ist es wert.

Gruß
Ken

Stevie 14. Okt 2004 07:52

Re: wie kann ich ' aus einem string entfernen?
 
Das hier ist auf jeden Fall schneller:
Delphi-Quellcode:
  try
    List.LoadFromFile(FFileName);
    Dumplist := List.Text;
    iCount := 1;
    iLength := Length(Dumplist);
    Dumplist2 := '';
    while iCount <= iLength do
    begin
      case Dumplist[iCount] of
      '[':
         if (iCount < iLength) and (Dumplist[iCount+1] = '[') then
           Inc(iCount)
         else
           Dumplist2 := Dumplist2 + DumpList[iCount];
      ']':
         if (iCount < iLength) and (Dumplist[iCount+1] = ']') then
           Inc(iCount)
         else
           Dumplist2 := Dumplist2 + DumpList[iCount];
      '\':
         if (iCount < iLength) then
           case DumpList[iCount+1] of
           'n': Inc(iCount);
           '''': Inc(iCount);
           else
             Dumplist2 := Dumplist2 + DumpList[iCount];
         end;
      else
        Dumplist2 := Dumplist2 + DumpList[iCount];
      end;
      Inc(iCount);
    end;
    List.Text := Dumplist2;
    List.SaveToFile(FFileName2);
  finally
    FreeAndNil(List);
  end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.

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-2025 by Thomas Breitkreuz