Thema: Delphi Steuerzeichen

Einzelnen Beitrag anzeigen

Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#1

Steuerzeichen

  Alt 2. Sep 2011, 14:46
Hallo !

Ich schreibe derzeit an einem Programm, dass anhand einer Paradox-Datenbank ein SQL-Scrip für den Import in ein anderes Programm erzeugen soll.
An wenigen Stellen werden aus der Paradox-DB Steuerzeichen aus einem (vermutlich defekten) Memo-Feld importiert. Ich habe versucht diese Steuerzeichen ( [NUL], [SI], [DC4], [EOT] ... ) aus dem Text auszufiltern.
Leider ohne großen Erfolg.

Zunächst habe ich versucht, alle Steuerzeichen mit Hilfe einer Funktion herauszufiltern :

Delphi-Quellcode:
function TMain.CleanText(S: String): String;
var i:Integer;
begin
 for i := 0 to 31
  do if (i<>10) AND (i<>13)
      then S:=StringReplace(S,CHR(i),'',[rfReplaceAll]);
 Result := S;
End;
Auch der direkte Aufruf mit
Delphi-Quellcode:
 {...}
 S:=StringReplace(S,CHAR(#0),'',[rfReplaceAll]);
 S:=StringReplace(S,CHAR(#4),'',[rfReplaceAll]);
 S:=StringReplace(S,CHAR(#20),'',[rfReplaceAll]);
 {...}
bzw.
Delphi-Quellcode:
 {...}
 S:=StringReplace(S,#0,'',[rfReplaceAll]);
 S:=StringReplace(S,#4,'',[rfReplaceAll]);
 S:=StringReplace(S,#20,'',[rfReplaceAll]);
 {...}
erbrachte nicht das gewünschte Ergebnis.

Einzig der Trim-Befehl brachte einen kleinen Erfolg. Dieser entfernte die Steuerzeichen, die sich am Anfang oder Ende des Strings befanden.
Befinden sich jedoch Steuerzeichen inmitten des Strings, so werden diese nicht entfernt.

Hat jemand eine Idee, wie ich ALLE Steuerzeichen entfernen kann ?

Gruß
Guido R.
  Mit Zitat antworten Zitat