Entwickler-Ecke

Sonstiges (Delphi) - Hochkomma in ReplaceString ?


ringo! - Mo 19.07.04 18:05
Titel: Hochkomma in ReplaceString ?
Ich möchte mit Hilfe von ReplaceString einen String von allen Hochkommata ("') befreien. Die Frage ist nur wie. Kann mann irgendwie den ASCII Code übergeben ?
Ich lese einige Daten in eine Datenbank ein. Dummerweise enthalten einige Daten Hochkommata. Beim einlesen gibt es natürlich einen SQL Fehler :( Wenn es eine Möglichkeit gibt, daß man auch Hochkommata einlesen kann, wäre das natürlich am besten, da das überprüfen der Strings bei sehr vielen Daten ne unnötig rechenintensive Angelegenheit wird.

Gibt es eventuell auch ne Möglichkeit einen String von allen Sonderzeichen zu befreien ? Sprich alle Zeichen die nicht A-Z und 0-9 sind, sollen gelöscht werden.


GTA-Place - Mo 19.07.04 18:15


Delphi-Quelltext
1:
StringRelpace(Wasauchimmer.Text, '''''', [...]);                    


4 ' gibt ein '.


mirage228 - Mo 19.07.04 18:18
Titel: Re: Hochkomma in ReplaceString ?
ringo! hat folgendes geschrieben:
Ich möchte mit Hilfe von ReplaceString einen String von allen Hochkommata ("') befreien. Die Frage ist nur wie. Kann mann irgendwie den ASCII Code übergeben ?
Ich lese einige Daten in eine Datenbank ein. Dummerweise enthalten einige Daten Hochkommata. Beim einlesen gibt es natürlich einen SQL Fehler :( Wenn es eine Möglichkeit gibt, daß man auch Hochkommata einlesen kann, wäre das natürlich am besten, da das überprüfen der Strings bei sehr vielen Daten ne unnötig rechenintensive Angelegenheit wird.

Gibt es eventuell auch ne Möglichkeit einen String von allen Sonderzeichen zu befreien ? Sprich alle Zeichen die nicht A-Z und 0-9 sind, sollen gelöscht werden.


Hi,

versuchs mal mit (wg. Hochkommas):


Delphi-Quelltext
1:
  Text := StringReplace(Text, '''''', [rfReplaceAll]                    


Und wegen den Zeichen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  i: integer;
begin
  for i := 0 to Length(Text)-1 do
    if i <= Length(Text)-1 then    
      if not (Text[i] in [#65..#90#97..#122#48..#47]) then
        Delete(Text, i, 1);
end;


Ungetestet, sollte aber gehen.

mfG
mirage228


GTA-Place - Mo 19.07.04 18:19

Ich war schneller mit dem ' Prob. :D


ringo! - Mo 19.07.04 18:26

Dank euch. Funktioniert. Allerdings kann das nicht meine Lösung sein. Dadurch dauert das einlesen der Daten nämlich ewig.
Gibt es nicht die Möglichkeit, daß auch Hochkommata in einem SQL Ausdruck vorhanden sein können ? Selbst bei einer Klammer () gibt es ja schon nen Fehler.