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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 11:17   #1
Афанасий[vedma]
Вечнодумающий
Форумчанин
 
Аватар для Афанасий[vedma]
 
Регистрация: 14.07.2011
Сообщений: 161
По умолчанию Замена символов на цифру

Привет=)
я в memo1 ввожу текст и нажимаю button1 и как сделать так, чтоб латинские буквы заменились на 0, а цифры на 1, а символы(тире, точка, запятая) заменились на 2?
Из лоскутов Добра, шьется полотно Зла
Афанасий[vedma] вне форума Ответить с цитированием
Старый 25.10.2011, 11:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
var s : string;
     i : integer;
begin
   s := memo1.Text;
   for i:=1 to Length(s) do
      if s[i] in ['a'..'z','A'..'Z'] then s[i] := '0'
      else
        if s[i] in ['0'..'9'] then s[i] := '1'
        else
          if s[i] in ['.',',','-'] then s[i] := '2';

   memo1.Text := s;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.10.2011, 12:08   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Кстати, я где-то в интернетах читал, что прямая замена символа будет работать не всегда, поскольку строка не является массивом на самом деле. Поэтому тот сайт (не помню, какой) советовал поступать следующим образом:
Код:
c - тот символ, на который мы заменямяем
s[i]:= copy (s, ..., ...) + c + copy (s, ...,...)
У функции COPY вместо троеточия стоят порядковые номера символов, где мы режем, заменяем и так далее. Я просто не помню сейчас.

Как вам такой подход? Или то, что напрямую символ заменять нельзя - наглая ложь незнающих людей?
Вадим Мошев вне форума Ответить с цитированием
Старый 25.10.2011, 13:30   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Или то, что напрямую символ заменять нельзя - наглая ложь незнающих людей?
Наглая ложь.
FaTaL вне форума Ответить с цитированием
Старый 25.10.2011, 13:51   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Наглая ложь.
+1 (присоединяюсь)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.10.2011, 16:33   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так покрасивше будет
Код:
   s := memo1.Text;
   for i:=1 to Length(s) do
      case s[i] of
      'a'..'z','A'..'Z': s[i] := '0';
      '0'..'9':          s[i] := '1';
      '.',',','-':       s[i] := '2';
      end;
   memo1.Text := s;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.10.2011, 16:38   #7
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Цитата:
Кстати, я где-то в интернетах читал, что прямая замена символа будет работать не всегда, поскольку строка не является массивом на самом деле. Поэтому тот сайт (не помню, какой) советовал поступать следующим образом:
на самом деле строка это массив символов
Lesha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена в имени столбца буквы на цифру Sergey112233 Microsoft Office Excel 3 19.10.2011 10:02
Дан массив, состоящий из символов. Вывести на экран цифру, наиболее часто встречающуюся в этом массиве. Andros_me Помощь студентам 2 21.12.2010 08:50
Delphi. Вывести наиболее часто повторяющуюся цифру из строки символов Kurai Помощь студентам 1 27.04.2010 23:04
замена символов sveta11115 Общие вопросы C/C++ 11 21.03.2010 10:56
c++ замена символов sveta11115 Помощь студентам 0 21.03.2010 00:09