Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
 Аватар для sly444
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146

Количество букв в поле edit (именно букв)

03.01.2014, 13:55. Показов 2936. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Скажите, как проверить поле edit на буквы? Именно на буквы. То есть, если в поле edit одни пробелы, или символы какие-нибудь, или меньше 2 букв - чтобы программа не запускалась.

Тобишь сделать так:
if (в edit1.Text лежит слово, состоящее из 2 букв или более) then
программа работает
else
не работает;

При чем слово должно состоять именно из двух букв вида: aa . А не, а а или а!а . Как такое реализовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2014, 13:55
Ответы с готовыми решениями:

Дан текст из строчных русских букв. Подсчитать количество гласных букв в тексте
Дан текст из строчных русских букв. Подсчитать количество гласных букв в тексте.

Автомобильные номера состоят из 1,2, или 3 букв и 4 цифр. используется 30 букв, найти число таких букв
Автомобильные номера состоят из 1,2, или 3 букв и 4 цифр. используется 30 букв, найти число таких букв. помогите решить, или объясните...

Извлечение слов и их распределение на категории: из русс. букв, из англ. букв, из русс. и англ. букв, слова схожие по начертанию букв с русс и англ.
В тексте содержатся русские и англ слова. разделить все слова на 3 списка: русские слова, англ слова, слова, происхождения которых нельзя...

10
63 / 64 / 11
Регистрация: 27.02.2013
Сообщений: 1,116
03.01.2014, 15:48
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
Var IsLetter: Boolean;
    i: Integer;
begin
for i:= 1 to Length(Edit.Text) do
if not (Edit.Text[i] in ['A'..'Z', 'a'..'z'])
then 
      begin
      IsLetter := False;
      break;
      end;
if IsLetter then
if Length(Edit.Text) then ... //че то сделали
end;
1
 Аватар для sly444
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
03.01.2014, 23:59  [ТС]
GetHelp, К сожалению, не работает вариант. В любом случае, чтобы не было в Edit все равно он переменной isLetter присваивает false. Попробовал в части:
Delphi
1
2
3
4
5
then 
      begin
      IsLetter := False;
      break;
      end;
Присвоить true. И он начал всегда присваивать true. Почему-то игнорится условие:
Delphi
1
if not (Edit.Text[i] in ['A'..'Z', 'a'..'z'])
Оно всегда равно true.

В edit вставлял просто пробелы, слова (как на русском, так и латиницей), цифры, символы. Ничего не работает..
0
Модератор
10352 / 5638 / 3394
Регистрация: 17.08.2012
Сообщений: 17,202
04.01.2014, 02:25
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Var IsLetter: Boolean;
    i: Integer;
    s: string;
begin
  IsLetter := true;
  s := Edit.Text;
  for i := 1 to Length(s) do 
    if not(s[i] in ['A'..'Z', 'a'..'z'])
      then begin
        IsLetter := False;
        break
      end;
  if IsLetter and (Length(s) > 2)
    then //всё нормально
    else //не всё нормально
end;
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
04.01.2014, 07:29
Ну вот так еще, по таблице на любые символы поставить:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  i: integer; //для цикла
  str: string; //строка
begin
  Str := Edit1.Text;
  for i := 1 to Length(Str) do
    case ord(Str[i]) of
      48..57: ShowMessage(str[i] + ' - цифра');
      192..255: ShowMessage(str[i] + ' - Русская буква');
      65..90, 97..122: ShowMessage(str[i] + ' - Английская буква');
      //65-90 диапазон заглавных англ букв 97-122 мелких
    end;
end;
Добавлено через 7 минут
виссс

Добавлено через 15 секунд
виссс
1
 Аватар для sly444
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
04.01.2014, 08:02  [ТС]
GetHelp, Ваш код идеально работает, просто перед циклом надо было написать, что isLetter по-умолчанию равен true. Спасибо за помощь!

Cyborg Drone, Вас также благодарю! Именно благодаря Вашему коду на меня и снизошло озарение

NIKOLAYY, Интересная вещь, тоже надо будет опробовать. А вот Вы написали только один диапазон для русских букв - это для маленьких или больших?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
04.01.2014, 08:28
192..255 это коды всех русских букв кроме Ё, ё
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
04.01.2014, 08:31
И для маленьких и для больших, они все вошли в тот диапазон.
Вот таблица: http://ipg.h1.ru/lessons/delphi/les04_pr01.html
1
 Аватар для sly444
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
04.01.2014, 21:53  [ТС]
Всем спасибо за помощь!
0
Модератор
10352 / 5638 / 3394
Регистрация: 17.08.2012
Сообщений: 17,202
05.01.2014, 21:20
sly444, обращаю Ваше внимание на тот факт, что в среде Delphi используются объекты, и Edit.Text это - в первую очередь - свойство конкретного экземпляра объекта TEdit типа string, а не просто переменная типа string. Поэтому, для избежания плохо отлавливаемых ошибок, рекомендую копировать содержимое Edit.Text в промежуточную переменную, кроме случаев непосредственного чтения / записи: нет никакой гарантиии, что за время работы Вашего кода значение свойства Edit.Text не изменится. Если обращаться к каждому символу по индексу: нет гарантии, что длина поля Text не изменится. Всего доброго.
1
 Аватар для sly444
5 / 5 / 3
Регистрация: 29.12.2010
Сообщений: 146
06.01.2014, 23:15  [ТС]
Cyborg Drone, спасибо за предупреждение. Как раз думал, что лучше все записывать в переменные, так надежнее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2014, 23:15
Помогаю со студенческими работами здесь

Edit между букв
Вообщем может я не по теме и в делфи этого нельзя,но спрошу. Как можно в слове ,в определенном месте програмно вставить edit? Смысл...

Массив из букв ['A' . 'Z'] и Edit
В функции, у меня, CU := ; Вопрос: Ка правильно подключить Edit место что бы можно было указывать нужные символы. То есть что бы...

Соотношение букв к цифрам. Edit
Всем привет, что-то я не догоняю, как можно получить исходя из определенного текста нужные мне цифры. Например: 1 = А, Б, В 2 = Г,...

Регистр букв в поиске Edit
Что сделать, чтоб не учитывался регистр букв при вводе данных? procedure TForm3.Edit1Change(Sender: TObject); begin begin if...

Как запретить ввод в Edit букв?
procedure TForm5.Button1Click(Sender: TObject); var a,b,i:integer; s:real; begin a:=strtoint(edit1.text); s:=0; i:=1; ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru