2010-10-01 3 views
1

У меня есть файл excel с многочисленными не-ASCII-символами, которые я бы хотел заменить символом пробела.Как заменить символы xA0 (или Non-ASCII) в строке на ''?

Этот текст должен быть введен в базу данных MySQL и не будет импортироваться с этими символами в строках. При попытке опубликовать строку я получаю HY000 Incorrect string value.

ответ

6

Если набор символов не-ASCII фиксирована вы можете использовать:

NewString := StringReplace(OriginalString,#1#4,' ',[rfReplaceAll]) 

где # 1 # 4 является не-ASCII символы, которые вы хотите заменили.

Here is some docs on it's use.

Вы также могли бы сделать это.

function StripNonAlpha(aInput : String) : String; 
var 
I : Integer; 
begin 
result := aInput; 
for I := 1 to length(result) do 
begin 
    if not CharInSet(result[I],['A'..'Z','a'..'z']) then 
     result[I] := ' '; 
end; 
end; 

Затем вы можете изменить Set в CharInSet на допустимые символы.

+0

Спасибо, Роб, хорошо сработал. Для функции Delphi 7 StripNonAlpha (aInput: String): String; var I: Целое; начало результат: = aВход; для I: = 1 к длине (результат) do начало если нет (результат [I] в ValidChars), то результат [I]: = ''; конец; конец; Где ValidChars: Set Char = ['0' .. '9', 'A' .. 'Z', 'a' .. 'z', '?', '.', '>', '<' , '+', '-' '!', '~', '@', '#', '$', '%', '&', '*', '(', ')',» _ ',' = ',' {','} ',' [','] ',' | ',' \ ','/',': ','; ',' ']; – Simon

Смежные вопросы