Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как распарсить строку (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-результат


Наверх

Титульная страница Поиск, карта сайта Написать письмо