Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
S_Barinov
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 47
1

Если последний символ в Edit - точка, то выполнить действие

09.08.2016, 10:41. Просмотров 920. Ответов 12
Метки нет (Все метки)

Если в конце строки эдит стоит точка то а:=1; Если нет то а остается какой была.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2016, 10:41
Ответы с готовыми решениями:

Если длина строки четная, то удалить каждый второй символ, если нечетная, то удалить первый и последний символ
Помогите пжл. решить задачу. Дана строка если ее длина четная то удалить...

Последний символ в Edit
Добрый день! Подскажите, как закрасить последний символ в Edit белым цветом?

Если TMemo не пуст, то выполнить действие
как сделать если текст в мемо 1, то выполнять действие? procedure...

Если существует определенный файл, то выполнить заданное действие
Как зделать так чтобы, есть определёный фаил по пути например D:\123.txt И...

Выполнить действие в 3 часа по Московскому времени
как можно сделать что бы программа выполняла действие например именно в 3 часа...

12
Puporev
Модератор
54698 / 42112 / 29076
Регистрация: 18.05.2008
Сообщений: 99,386
09.08.2016, 10:54 2
Лучший ответ Сообщение было отмечено S_Barinov как решение

Решение

Delphi
1
if Edit1.Text[length(Edit1.Text)]='.' then a:=1
1
qwertehok
2300 / 2204 / 602
Регистрация: 29.08.2013
Сообщений: 14,727
09.08.2016, 12:19 3
Delphi
1
if copy(edit1.text,length(edit1.text),1)='.' then
1
Cyborg Drone
Модератор
5296 / 3174 / 2442
Регистрация: 17.08.2012
Сообщений: 10,188
09.08.2016, 13:26 4
qwertehok, что-то мне подсказывает, что незачем формировать строку, если нужно выяснить, чему равен один символ. Даже если эта самая строка получается длиной в один символ.
0
qwertehok
2300 / 2204 / 602
Регистрация: 29.08.2013
Сообщений: 14,727
09.08.2016, 14:21 5
соглашусь что в этом случае больше подходит первый вариант
я просто написал другое решение, может автору поможет в дальнейшем пример с copy()
0
Cyborg Drone
Модератор
5296 / 3174 / 2442
Регистрация: 17.08.2012
Сообщений: 10,188
09.08.2016, 14:31 6
qwertehok, согласен, для ТС полезно, как вариант.

Не по теме:

Просто я краем глаза слышал, что, когда пишется нечто подобное, индусские программисты выпивают стаканчик фенни в честь автора... Боюсь я за них, сопьются ведь... Я пошутил! Я пошутил! :black_eye.:

0
Mawrat
12827 / 5735 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
09.08.2016, 15:02 7
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
qwertehok, что-то мне подсказывает, что незачем формировать строку, если нужно выяснить, чему равен один символ.
Цитата Сообщение от qwertehok Посмотреть сообщение
я просто написал другое решение, может автору поможет в дальнейшем пример с copy()
Это не просто другое решение, а решение, которое работает без ошибок. При всём уважении к Юре (Puporev), в случае пустой строки в Edit, его код выдаст ошибку. А вот код с Copy() в той же ситуации отработает правильно.

Не по теме:

Цитата Сообщение от Cyborg Drone Посмотреть сообщение
индусские программисты выпивают стаканчик фенни
В этот раз индусы останутся без выпивки. :)

0
Cyborg Drone
Модератор
5296 / 3174 / 2442
Регистрация: 17.08.2012
Сообщений: 10,188
09.08.2016, 15:25 8
Mawrat, а ведь точно... Нужно добавить:
Delphi
1
if (length(Edit1.Text) > 0) and (Edit1.Text[length(Edit1.Text)]) = '.' then a := 1;
Получается, вариант с copy вовсе и не индусский... Можно ещё через pos:
Delphi
1
if pos('.', Edit1.Text) > 0 then a := 1;
Добавлено через 1 минуту

Не по теме:

и да, индусские программисты вроде бы лишнего выпить не должны...

0
qwertehok
2300 / 2204 / 602
Регистрация: 29.08.2013
Сообщений: 14,727
09.08.2016, 16:02 9
можно еще использовать RightStr()
0
Mawrat
12827 / 5735 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
09.08.2016, 16:06 10
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Можно ещё через pos:
И опять "докопаюсь". Нужно проверять точку в конце строки, а Pos() будет искать слева - направо первую точку, которая может оказаться не в конце строки.
0
Cyborg Drone
Модератор
5296 / 3174 / 2442
Регистрация: 17.08.2012
Сообщений: 10,188
09.08.2016, 16:17 11
Да, насчёт pos я привёл ошибочное решение... Каюсь. Ещё требуется проверка на нулевую длину строки... Ничем не лучше.
Delphi
1
if (length(Edit1.Text) > 0) and (pos('.', Edit1.Text) = length(Edit1.Text)) then a := 1;
0
qwertehok
2300 / 2204 / 602
Регистрация: 29.08.2013
Сообщений: 14,727
09.08.2016, 16:23 12
Цитата Сообщение от Mawrat Посмотреть сообщение
будет искать слева - направо первую точку, которая может оказаться не в конце строки.
можно развернуть строку и проверить первый символ
0
Cyborg Drone
Модератор
5296 / 3174 / 2442
Регистрация: 17.08.2012
Сообщений: 10,188
09.08.2016, 20:26 13
Ничем не лучше. Всё равно придётся делать проверку на нулевую длину строки...

Вывод: Ваш вариант с copy наиболее оптимальный.

Не по теме:

Пойду выпью стаканчик фенни в честь меня...

0
09.08.2016, 20:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2016, 20:26

Выполнить какое-либо действие спустя 10 минут
Здравствуйте, подскажите пожалуйста код что бы по нажатию кнопки Button...

Проверить наличие данных из Edit на сервере, и в зависимости от результата сделать действие
В Edit1 записаны данные, нужно проверить есть ли эти данные на сервере или нет,...

Как заставить несколько компонентов выполнить одно и то же действие?
Хочется узнать, можно ли как нибудь объединить несколько объектов для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru