Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > удаление символов из файла


Автор: vicq 30.4.2008, 18:41
есть текст в юникоде на чешском языке. нужно убрать из него все переносы строк, спецсимволы, цифры... вобщем оставить только буквы алфавита. как это сделать???
Подскажите пожалуйста!!!

Автор: SneG0K 30.4.2008, 20:40
Ну вот например тебе надо удалить цифру 1
Код

var 
 i:integer;
begin
 while pos('1',stroka) do
  begin 
   i:=pos('1',stroka);
   delete(stroka, i, 1);
  end; 
Аналогично и с остальными. Хотя лучше положить все в массив и запустить цикл по массиву

Автор: vicq 30.4.2008, 22:35
т.е. считываем всю строку.. эт в потоке? или работа с типизированным(текстовым) файлом.. и ещё будет ли символ который я введу таким же как и двухбайтовый в юникоде? а ещё какой тип должен быть у массива и как его заполнить вручную? может и ламерские вопросы, просто я много уже перепробовал. Спасибо за ответ!

Автор: 1Andrey1 1.5.2008, 11:38
Код

function ClearString(Source: string): string;
var
  i: Integer;
const
valid = ['А'..'я','0'..'9']; {сюда можно вписать любой диапазон или символы по отдельности, так же можно использовать коды символов (типа [#47..#246])   }
begin
  Result := '';
  for i := 1 to Length(Source) do
    if Source[i] in valid then
      Result := Result + Source[i]
      else
      Result := Result + ' ';
end;            

Автор: Данкинг 1.5.2008, 12:09
Цитата(SneG0K @ 30.4.2008,  21:40)
 while pos('1',stroka) do
 

А pos сама по себе возвращает истину, если данный символ встречается в строке, что ли? Я всегда писал вроде
Код

while pos('1',stroka)<>0 
 
 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)