Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 1097
∙ повысить рейтинг »
Jimhucksly
Статус: 5-й класс
Рейтинг: 787
∙ повысить рейтинг »
Тимошенко Дмитрий
Статус: Студент
Рейтинг: 493
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Delphi

Номер выпуска:1448
Дата выхода:20.10.2009, 23:30
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:575 / 209
Вопросов / ответов:1 / 1

Вопрос № 173315: Здраствуйте Уважаемые эксперты. Требуется помощь в реализации программы. В программе имеется компоненты memo1,memo2 и button1. Нужно сделать так, чтобы при нажатии на кнопку текст в memo1 анализировался следующим образом. Если есть 10 цифр ...



Вопрос № 173315:

Здраствуйте Уважаемые эксперты.
Требуется помощь в реализации программы.
В программе имеется компоненты memo1,memo2 и button1.
Нужно сделать так, чтобы при нажатии на кнопку текст в memo1 анализировался следующим образом. Если есть 10 цифр идущих подряд тогда обратится к условию case в котором записаны, некоторые соответствия (текстовые переменные). И чтобы это соответствие выводилось в memo2. В случае если замечена последовательность цифр меньше 10 то ничего с ней не делать. Искать только те что 10. Заранее спасибо.

Отправлен: 15.10.2009, 22:07
Вопрос задал: Dimon4ik, 5-й класс
Всего ответов: 1
Страница вопроса »


Отвечает Евгений/Genia007/, Практикант :
Здравствуйте, Dimon4ik.
Вот мой способ решить Вашу задачу.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s, s1, s2: string;
i, j: integer;
begin
s:= '';
s1:= '';
s2:= '';
memo2.Clear;
j:= 1;
for i := 0 to memo1.Lines.Count - 1 do
begin
s1:= memo1.Lines.Strings[i];
for j := 1 to length(s1) + 1 do
begin
if (s1[j] <> ' ') and (j <> length(s1) + 1) then
s:= s + s1[j]
else
begin
if length(s) = 10 then
if s = '5132516132' then
s2:= s2 + 'Ф'
else
if s = '3 215112321' then
s2:= s2 + 'К'
else
if s = '3215111111' then
s2:= s2 + 'З';
{и так далее}
{....................................}
s:= '';
end;
end;
if s2 <> '' then
memo2.Lines.Add(s2);
s2:= '';
end;
end;
Кстати использовать для выбора строки оператор case здесь проблематично, потому что он требует порядковый тип.
-----
Помогли тебе, помоги и ты.

Ответ отправил: Евгений/Genia007/, Практикант
Ответ отправлен: 16.10.2009, 21:23

Оценка ответа: 5
Комментарий к оценке:
Отличный подход к задаче!
Большое спасибо за помощь.

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 255481 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.10 от 20.10.2009

    В избранное