Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.11.2015, 17:48
mailkyda mailkyda вне форума
Прохожий
 
Регистрация: 25.11.2015
Сообщения: 2
Версия Delphi: delphi 10
Репутация: 10
По умолчанию фильтрация текста memo

Здравтвуйте. Наткнулся на проблему поиска и удаления определенных символов в Memo.

Код:
ка!кой то 2!3текст !какой т\о текст :какой то те@кс@@т ка@@кой то текст какой то тек!ст 

Нужно очистить текст от этих символов.
Заранее благодарен.
Ответить с цитированием
  #2  
Старый 25.11.2015, 18:50
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию for Delphi 7

Код:
var
  s: String;
  i: Integer;
begin
  s:='';
  for i:=1 to Length(Memo1.Text) do
    if Memo1.Text[i] in ['А'..'Я', 'а'..'я', ' '] then s:=s+Memo1.Text[i];
  Memo1.Text:=s;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 25.11.2015, 23:44
mailkyda mailkyda вне форума
Прохожий
 
Регистрация: 25.11.2015
Сообщения: 2
Версия Delphi: delphi 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
Код:
var
  s: String;
  i: Integer;
begin
  s:='';
  for i:=1 to Length(Memo1.Text) do
    if Memo1.Text[i] in ['А'..'Я', 'а'..'я', ' '] then s:=s+Memo1.Text[i];
  Memo1.Text:=s;
end;
Спасибо, но теперь весь текст удаляется почему то.
Попробовал сделать так, и протестировал на англ тексте, все работает.
Код:
var
 i:integer;
 s:string;
begin
s:='';
for i:=0  to Length(Memo1.Text) do
  if Memo1.Text[i] in ['А'..'Z', 'a'..'z', ' '] then s:=s+Memo1.Text[i];
  Memo1.Text:=s;
end;
Ответить с цитированием
  #4  
Старый 26.11.2015, 09:53
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

С некоторых пор(с D2009), Char в Дельфи стал юникодовским(двухбайтовым), а множества (set of ...)остались однобайтовые, и множество из русских букв сделать нельзя. Поэтому принадлежность символа буквам русского алфавита нужно делать ручками.
Ответить с цитированием
  #5  
Старый 26.11.2015, 09:59
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от mailkyda
почему то
в заголовке сообщения написано почему

Код:
var
  s: String;
  i: Integer;
  c: Char;
begin
  s:='';
  for i:=1 to Length(Memo1.Text) do
  begin
    c:=Memo1.Text[i];
    if ((c>='а') and (c<='я'))
    or ((c>='А') and (c<='Я'))
    or ((c>='A') and (c<='Z'))
    or ((c>='a') and (c<='z'))
    or (c=' ') then s:=s+Memo1.Text[i];
  end;
  Memo1.Text:=s;
end;
ru, en
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #6  
Старый 26.11.2015, 11:52
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Ребят, букву "ё" сиречь "Ё" забыли упомянуть, она в стандартный набор почему-то не входит
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:02.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025