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

Delphi Sources



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

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.07.2013, 18:51
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию Удаления всех символов кроме цифр в строке

Как сделать функцию удаления всех символов по аналогии как эта
Код:
1
2
3
4
5
6
7
8
9
10
11
Function DeleteNumber(Text:String):String;
const
  D = ['0'..'9'];
var
  i : Integer;
begin
  for i := Length(Text) downto 1 do begin
    if Text[i] in D then Delete(text, i, 1);
  end;
  Result:=Text;
end;

Проблема в том что функция будет вызываться даже если в строке нет символов так что в функции нужно делать проверку есть ли символы в строке короче удалять все символы но оставить только цифры по аналогии как сделана 1вая и чтобы проэкт не завис
  #2  
Старый 30.07.2013, 19:18
Аватар для Facepalm
Facepalm Facepalm вне форума
Прохожий
 
Регистрация: 03.02.2013
Сообщения: 40
Репутация: 2552
Смех

Делай так же как и все остальные функции и процедуры.
__________________
Ну ты понел ^_^.
  #3  
Старый 30.07.2013, 19:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Код:
1
if not Text[i] in D then Delete(text, i, 1);
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
AlexandrV (30.07.2013)
  #4  
Старый 30.07.2013, 19:55
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
Function DeleteSimbol(Text:String):String;
const
  D = ['0'..'9'];
var
  i : Integer;
begin
  for i := Length(Text) downto 1 do begin
    if not Text[i] in D then Delete(text, i, 1);
  end;
  Result:=Text;
end;
ошибку выдает ругается на not
  #5  
Старый 30.07.2013, 22:24
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Код:
1
2
3
...
if not (Text[i] in D) then Delete(text, i, 1);
...
скобки
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
  #6  
Старый 31.07.2013, 00:01
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вы тут походу совсем ипанулись...
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Закрытая тема


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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