Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122

Зарезервированные слова в Delphi

23.05.2017, 21:13. Показов 3781. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как сделать проверку, что все зарезервированные слова типа (var, function, begin, end и т.д.) должны быть маленькими буквами
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.05.2017, 21:13
Ответы с готовыми решениями:

Слова и буквы Delphi
Определить все слова текста, что складаються из тех самых букв, что и последнее слово этого текста. Помогите, пожалуйста)

Игра в слова в Delphi
привет всем друзья за сегодня помогите пожалуйста составить программу, позволяющую компьютеру и человеку играть в слова. Предварительно...

Слова и строки в Delphi...
У меня задание и я не знаю что с ним делать... Надо: Ввести слова в текстовое поле (а вернее несколько строк), затем переставить...

43
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
24.05.2017, 16:16  [ТС]
Студворк — интернет-сервис помощи студентам
немного не то, работает некорректно и не так как нужно, если сделать вот так...
Если сделать проверку есть ли в строке слова заглавными буквами вот так, оно конечно не работает, как это лучше реализовать?

Delphi
1
2
3
4
5
6
7
8
if Pos(' VAR, END, BEGIN ', SynEdit1.Lines[i]) <> 0 then begin
        ListView1.Items.BeginUpdate;
      ListView1.Items.Add;
      id:=id+1;
      ListView1.Items[id-1].Caption:=IntToStr(id);
      ListView1.Items[id-1].SubItems.Add('[Строка: '+IntToStr(i+1)+'] - зарезервированные слова не должны заглавными буквами');
      ListView1.Items.EndUpdate;
    end;
0
Модератор
 Аватар для D1973
9954 / 6489 / 2461
Регистрация: 21.01.2014
Сообщений: 27,490
Записей в блоге: 3
24.05.2017, 17:21
Цитата Сообщение от USIXA Посмотреть сообщение
if Pos(' VAR, END, BEGIN ', SynEdit1.Lines[i]) <> 0 then begin
USIXA, прочитали бы Вы про функцию Pos... Естественно, что ни в одной строке не найдется подстрока ' VAR, END, BEGIN '...
0
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
24.05.2017, 21:27  [ТС]
Delphi
1
2
3
4
5
6
7
8
if Pos('VAR', SynEdit1.Lines[i]) <> 0 then begin
        ListView1.Items.BeginUpdate;
      ListView1.Items.Add;
      id:=id+1;
      ListView1.Items[id-1].Caption:=IntToStr(id);
      ListView1.Items[id-1].SubItems.Add('[Строка: '+IntToStr(i+1)+'] - зарезервированные слова не должны заглавными буквами');
      ListView1.Items.EndUpdate;
    end;
Если вот так то тоже не работает
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
24.05.2017, 22:19
мда. Интересно, сколько раз нужно повторить, чтобы автор прочел?

Алгоритм
0. Создать массив/список зарезервированных слов
1. Разбить строку на слова
2. для каждого слова проверить, не входит ли данное слово в список БЕЗ учета регистра, например, используя функцию SameText()
3. если входит, но не равно этому слову, то занести в список сообщений соответствующую запись
1
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
24.05.2017, 22:28  [ТС]
krapotkin, без кода я не понимаю, на словах я все понимаю как что зачем, но вопрос в том что я не знаю как прописать
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
24.05.2017, 23:01
если вы не понимаете даже пункты 0 и 1,
вам нужно потренироваться на кошках взять для разбега тему попроще
1
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
24.05.2017, 23:05  [ТС]
krapotkin, спасибо за помощь добрый человек
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
24.05.2017, 23:13
Поиск. Delphi Разбить строку на слова
я не слишком груб?
0
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
24.05.2017, 23:20  [ТС]
Раньше на этом сайте помогали, ну видимо прошло то время
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33478 / 21576 / 8250
Регистрация: 22.10.2011
Сообщений: 37,034
Записей в блоге: 12
24.05.2017, 23:48
Помогают тем, кто сам принимает активное участие в написании кода, но у него что-то не получается, и он спрашивает. А когда кто-то садится на шею и свешивает ноги (либо потому что не хочет ничего делать и ждет готового кода, либо потому что не умеет, но взялся за непосильное задание - мне все равно. Факт остается фактом: принимать полноценное участие в обсуждении и написании кода он не может) - это не называется помощью. Я вон тоже в соседней теме взялся помочь тебе. И что вышло из этого? Ты даже готовый код не смог себе в приложение скопировать. Зато исковеркал то, что прекрасно работало.
0
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
25.05.2017, 10:10  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
a : array[1..5] of String[10]=('VAR','END','BEGIN','FUNCTION','IF');
 
    if Pos('a[i]', SynEdit1.Lines[i]) <> 0 then begin
        ListView1.Items.BeginUpdate;
      ListView1.Items.Add;
      id:=id+1;
      ListView1.Items[id-1].Caption:=IntToStr(id);
      ListView1.Items[id-1].SubItems.Add('[Строка: '+IntToStr(i+1)+'] - зарезервированные слова не должны заглавными буквами');
      ListView1.Items.EndUpdate;
    end;
Вот код, помогите хотя бы с ним, как сделать так, чтобы функция брала слова из массива и искала их в строке
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
26.05.2017, 00:23
Такая функция уже давно есть:
Delphi
1
Index := StrUtils.IndexStr(SynEdit1.Lines[i], a);
Только массив немного по другому объявите:
Delphi
1
2
Const
a: array[1..5] of String=('VAR','END','BEGIN','FUNCTION','IF');
Добавлено через 5 минут
Каждая публикация вашего кода - это что-то. Вот скажите, что вы написали вот в этой строчке?
Delphi
1
if Pos('a[i]', SynEdit1.Lines[i]) <> 0 then begin
0
Житель Земли
 Аватар для DenNik
3004 / 3026 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
26.05.2017, 09:13
изначальная идея программы - в итоге мартышкин труд

и вообще, зачем ты создал две одинаковые темы?
0
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
26.05.2017, 10:17  [ТС]
Цитата Сообщение от Пытливый Посмотреть сообщение
Такая функция уже давно есть:

Index := StrUtils.IndexStr(SynEdit1.Lines[i], a);
А эти операторы "StrUtils.IndexStr" где записать, ошибку дает на них
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
26.05.2017, 10:35
StrUtils это юнит который надо подключить для использования функции IndexStr(), она там живет.
1
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
26.05.2017, 10:41  [ТС]
да с ошибками разобрался, НО все равно ни одного слова из массива не находит, так я написал:
Delphi
1
2
3
4
5
6
7
8
if Index = StrUtils.IndexStr(SynEdit1.Lines[i], a) then begin
        ListView1.Items.BeginUpdate;
      ListView1.Items.Add;
      id:=id+1;
      ListView1.Items[id-1].Caption:=IntToStr(id);
      ListView1.Items[id-1].SubItems.Add('[Строка: '+IntToStr(i+1)+'] - зарезервированные слова не должны заглавными буквами');
      ListView1.Items.EndUpdate;
    end;
Массив по вашему записал, переменная Index типа integer, больше никакой не принимает
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
26.05.2017, 11:04
найдите 10 отличий:
Delphi
1
Index := StrUtils.IndexStr(SynEdit1.Lines[i], a);
Delphi
1
if Index = StrUtils.IndexStr(SynEdit1.Lines[i], a) then
0
1 / 1 / 0
Регистрация: 02.04.2016
Сообщений: 122
26.05.2017, 11:09  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
найдите 10 отличий:
А как мне его вписать в свой алгоритм, просто строка и все???? дальше что, нашел отличия,
не легче сказать, что я не так сделал и как лучше, правда?
0
 Аватар для Пытливый
3765 / 2272 / 706
Регистрация: 29.05.2013
Сообщений: 9,622
26.05.2017, 11:20
Я несколько не понимаю, что вы пытаетесь получить этим сравнением?
Delphi
1
if Index = StrUtils.IndexStr(SynEdit1.Lines[i], a)
IndexStr(SynEdit1.Lines[i], a) вернет индекс элемента массива а, если найдет в нем SynEdit1.Lines[i].
Смысл этой функции в поиске нужного значения в массиве.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 21
26.05.2017, 11:20
я согласен только на таких условиях
вы:
1) читаете док по indexStr()
2) пишете свой алгоритм на русском
я:
3)перевожу его на паскаль
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2017, 11:20

Текст. Ключевые слова Delphi XE
Здрасте ,вопросик есть. Как вы знаете есть ключевые слова (begin и end и т.д) они выделяются. Можно это как-то релиозавать в текстовом...

Обработка строковых данных в Delphi. Поменять местами слова: первое со вторым, третье с четвёртым и т.д.
Помогите пожалуйста с задачей. Дано:строка символов.Группы символов,разделенные одним или несколькими пробелами и не содержащие пробелов...

Работа со строками Delphi. Найти слова, буквы которых принадлежат только заданному множеству.
Помогите пожалуйста написать программу на Delphi, которая находит слово в предложении, содержащее только буквы «т», «и», «р» (тир, титр,...

Как вывести текст, который содержит зарезервированные слова
Я пытаюсь вывести на экран Console.WriteLine(&quot;A problem has been detected and Windows has been shut down to prevent damage to...

Перечислить по алфавиту все зарезервированные слова используемые в файле
Необходимо перечислить по алфавиту все зарезервированные слова, используемые в файле, и указать количество появлений каждого слова. ...


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

Или воспользуйтесь поиском по форуму:
40
Закрытая тема Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru