Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: zeichen aus einem String löschen

  Alt 25. Sep 2006, 19:46
Hier etwas sehr Billiges:
Delphi-Quellcode:
Function QuickAndDirtyZapQuotesInStrings (Const aString : String) : String;
Begin
  Result := StrReplace (aString,'";"', #255, [rfReplaceAll]); // Die ";" in ein Spezialzeichen übersetzen
  Result := StrReplace (Result ,'"', '', [rfReplaceAll]); // Nun die verbleibenden " löschen
  Result := StrReplace (Result ,#255, '";"', [rfReplaceAll]); // Und das Spezialzeichen wieder in ";" zurückverwandeln
End;
Und hier etwas Schnelles:
Delphi-Quellcode:
Function ZapQuotes(const aString: string): string;
var
  i, j, n: Integer; // Laufvariablen: i in aString, j in Result. n = Länge von aString
  InStr: Boolean; // True-> Innerhalb eines '"'<Strings>'"', False = nicht.

begin
  n := Length (aString);
  SetLength (Result, n);
  inStr := False;
  j := 0;
  for i := 1 to n do begin
    if aString[i] = '"then // Quote gefunden
      if not InStr then // Sind wir innerhalb eines Strings?
        InStr := True // Nein, dann sind wir es jetzt
      else if (i < n) and (aString[i + 1] <> ';') then
        Continue // Wenn das nächste Zeichen kein ';' ist, dieses Zeichen
      else // *nicht* kopieren
        InStr := False; // Ansonsten sind wir nicht mehr in einem String
    Inc(j);
    Result[j] := aString[i]; // Kopiert aktuelles Zeichen
  end;
  SetLength (Result, j); // Länge des Ergebnisses setzen
end;
Ich hab o.g. Funktion nur gegen dein Beispiel getestet.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat