Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 11:36   #1
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию Убрать скобки, тире и пробелы

8(940)435-32-54 из номера нужно убрать все кроме цифр, чтобы получилось
89404353254. Все убрал, а цифры соединить не могу.

var S : string; i : integer;
begin
repeat
Write('Введите номер телефона: '); Readln(S);
for i=1 to Length(S) do begin
if (S[i]='(' ) or (S[i]=')' ) or (S[i]='-' ) then S[i]:=' '; {здесь у меня варианты, но не выходит S[i]=S[i-2] или S[i]=S[i+i] и т.д.}
end;
Writeln(S);
until Length(S)=0;
end.
1Hitman1 вне форума Ответить с цитированием
Старый 12.03.2013, 12:01   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Код:
var S : string; i : integer;
      s2:string;
begin
repeat
s2:='';
Write('Введите номер телефона: '); Readln(S);
for i=1 to Length(S) do begin
if (S[i]='(' ) or (S[i]=')' ) or (S[i]='-' ) then else s2:=s2+s[i]; {здесь у меня варианты, но не выходит S[i]=S[i-2] или S[i]=S[i+i] и т.д.}
end;
Writeln(S2);
until Length(S)=0;
end.
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 12.03.2013, 12:10   #3
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию

Добавлю в конце нужно поменять Writeln(S) на (S2).
Спасибо.
Только написал уже исправили.
1Hitman1 вне форума Ответить с цитированием
Старый 12.03.2013, 12:15   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
for j:=length(s) downto 1 do // поскольку строка меняется то просмотр НАДО начинать с конца
  if not (s[j] in ['0'..'9']) then Delete(s,j,1); //удалять все кроме пречисленного (а именно кроме цифр)
  if s[j] in [')','(','-'] then Delete(s,j,1); //удалять только перечисленное
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 12.03.2013, 12:22   #5
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
Смех

Цитата:
Сообщение от 1Hitman1 Посмотреть сообщение
8(940)435-32-54 из номера нужно убрать все
var S : string; i : integer;
begin
repeat
S2:=''; {здесь нужно добавить, а то при вводе следующего номера он прибавляется к предыдущему}
Write('Введите номер телефона: '); Readln(S);
for i=1 to Length(S) do begin
if (S[i]='(' ) or (S[i]=')' ) or (S[i]='-' ) then else S2:=S2+S[i];
end;
Writeln(S2);
until Length(S)=0;
end.
Не успеваю дополнения кинуть уже все исправили.

Последний раз редактировалось 1Hitman1; 12.03.2013 в 12:34.
1Hitman1 вне форума Ответить с цитированием
Старый 12.03.2013, 12:39   #6
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
Радость

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
for j:=length(s) downto 1 do // поскольку строка меняется то просмотр НАДО начинать с конца
  if not (s[j] in ['0'..'9']) then Delete(s,j,1); //удалять все кроме пречисленного (а именно кроме цифр)
  if s[j] in [')','(','-'] then Delete(s,j,1); //удалять только перечисленное
Оператор Delete пока еще не пройден, поэтому к данному решению не применим.
1Hitman1 вне форума Ответить с цитированием
Старый 12.03.2013, 14:53   #7
1Hitman1
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 10
По умолчанию

then else S2:=S2+S[i];
Дороги форумчане можно попросить прокомментировать данную функцию. Мне для себя, чтобы понять как здесь убираются скобки, тире и т.д.
1Hitman1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно убрать пробелы lezgin Общие вопросы Delphi 13 28.01.2013 08:36
Убрать лишние пробелы ДмитрийРэй C# (си шарп) 1 22.05.2011 09:19
убрать пробелы zetrix Microsoft Office Excel 9 10.03.2009 10:03
Убрать пробелы из строки Neymexa Помощь студентам 2 09.12.2008 14:29
Убрать пробелы из строки Neymexa Общие вопросы по Java, Java SE, Kotlin 2 29.11.2008 11:03