Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
удалить все русские буквы из текста. как? |

07.01.2010, 00:01
|
|
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
Провел на форуме: 1682814
Репутация:
102
|
|
удалить все русские буквы из текста. как?
сабж. делфи. помогите пажалста 
|
|
|

07.01.2010, 00:39
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
вот примитивный алгоритм. (pascal не люблю)
тк строка это массив то определенную букву можно получить так str[5] - 5 буква... есть такая функция ord - получить ASCII код символа. выведи для начала ord('а') ord('Я') посмотри диапазон чисел потом
делаешь 2 строки одинакового размера
первая исходная - for ом по всем элементам if ord(str[i])<ord('а') then dest[k]=str[i];
типа если это не русская буква заносим символ в новую строку - в итоге в новой строке будут все встречающиеся не русские символы.
может можно и красивее реализовать ) хз
|
|
|

07.01.2010, 01:25
|
|
Новичок
Регистрация: 11.07.2009
Сообщений: 20
Провел на форуме: 39998
Репутация:
2
|
|
Ну хоть бы и так:
var s: string;
i: integer;
c: char;
begin
s:= 'сstringяАiusaol';
for c:= 'А' to 'я' do
repeat
i:= pos(c, s);
if i <> 0 then
Delete(s, i, 1);
until i = 0;
ShowMessage(s);
end;
|
|
|

07.01.2010, 03:52
|
|
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
Провел на форуме: 1682814
Репутация:
102
|
|
заюзал StringReplace, повторив 33 раза со всеми буквами
Memo1.Lines.Text := StringReplace(Memo1.Lines.Text,'а','',[rfReplaceAll, rfIgnoreCase]);
не очень красиво, но работает 
|
|
|

07.01.2010, 14:25
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
I like the way you move!
Отличный выход 
|
|
|

07.01.2010, 17:53
|
|
Познающий
Регистрация: 15.12.2009
Сообщений: 81
Провел на форуме: 393444
Репутация:
24
|
|
Вот набросал:
Код:
procedure DeleteRus(text:string);
var c:char;
begin
for c:='А' to 'я' do
text:=StringReplace(text,с,'',[rfReplaceAll, rfIgnoreCase]);
end;
Пример:
Код:
var s:string;
begin
s:='хзчтоздgdfgsds36есь';
DeleteRus(s);
end;
|
|
|

07.01.2010, 18:03
|
|
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
Провел на форуме: 1682814
Репутация:
102
|
|
patcher, спасибо  жаль что в голову вчера такое не пришло
но менять наверное нечего небуду, ибо приделал опции с выбором символов, которые нужно удалять

|
|
|

07.01.2010, 19:45
|
|
Участник форума
Регистрация: 20.12.2008
Сообщений: 130
Провел на форуме: 436500
Репутация:
11
|
|
0_o те не лень было все эти чекбоксы ставить??
|
|
|

07.01.2010, 21:40
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме: 4205500
Репутация:
930
|
|
эээ на будущее - это решается одним текстовым полем, в которое юзер вбивает нужные символы для замены...
50 чекбоксов - это сильно. В мемы юзабилити!
|
|
|

08.01.2010, 00:14
|
|
Участник форума
Регистрация: 09.05.2009
Сообщений: 186
Провел на форуме: 1682814
Репутация:
102
|
|
Сообщение от Fata1ex
эээ на будущее - это решается одним текстовым полем, в которое юзер вбивает нужные символы для замены...
50 чекбоксов - это сильно. В мемы юзабилити!
да я с делфи знаком неделю буквально, что первое подруку попалось, то и поставил. притом задача была сделать прогу с кучей всяких ненужных настроек, да и вообще сымитировать бурную деятельность и гибкость программы
расскажите как сделать одно текстовое поле? 
Последний раз редактировалось 1n0y; 08.01.2010 в 00:33..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|