(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: zeichen aus einem String löschen
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")
|
|
Zitat
|