![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как распарсить строку (WideString)? [D6, D7, 95/98, XP]
dr D © (2006-01-11 14:22:00)Если быть точным, то из строки надо удалить определённые символы.
Символы зазаны юникодовскими кодами.
Как имея строку и код символа удалить этот символ из стоки? Подскажите пожалуйста.
dr D (2006-01-11 15:12:00) [1]Спасибо.
Сделал так:
PosInStr:=Pos(WideString('#AA'),MyWSting);
Delete(MyWSting,PosInStr,1);
begin...end (2006-01-11 14:44:00) [2]> dr D (11.01.06 14:22)
> Как имея строку и код символа удалить этот символ из стоки?
Примерно так же, как и в случае строк, состоящих из однобайтовых символов. Например, у процедуры Delete и функции Pos есть WideChar-версии, поэтому они прекрасно работают с WideString.
var
WS: WideString;
I: Integer;
begin
for I := Length(WS) downto 1 do
if WS[I] = WideChar(код_символа) then
Delete(WS, I, 1)
end
Digitman (2006-01-11 14:39:00) [3]в простейшей реализации :
1. Преобразовать WideString-оригинал в AnsiString-оригинал
2. Использовать StringReplace для удаления нужных символов из AnsiString-оригинала
3. После удаления выполнить обратное преобразование AnsiString-результата в WideString-результат