Delphi 5 Используйте Pos / PosIgnoreCase только для целых слов - PullRequest
0 голосов
/ 30 марта 2020

Я знаю, Delphi 5 действительно старый, но у меня нет другого выбора, потому что мой работодатель не хочет меняться, поэтому я застрял со старыми функциями и т. Д. c.

Я бы хотелось бы узнать, был ли способ получить позицию целых слов, которые я ищу:

У меня есть список слов (если, тогда, еще и т. д. c) с именем KEYWORDS, и для каждого слова в нем я должен проверять в каждом файле .pas, содержит ли это слово некоторые заглавные буквы.

В моем коде я читаю каждую строку, и для каждой строки я использую это, чтобы найти Я нахожу любое слово в списке, и если в нем есть несколько заглавных символов:

if(PosIgnoreCase(KEYWORDS[I], S) <> Pos(KEYWORDS[I], S)) //Then the keyword has some uppercases in this line and I must raise an error

Моя проблема в том, что если я использую некоторые слова, содержащие ключевые слова (например, «МОДИФИКАЦИЯ»), это обнаружит заглавные буквы IF. в нем и выдавать ошибку

Я пытался использовать if(PosIgnoreCase(' ' + KEYWORDS[I] + ' ', S) <> Pos(' ' + KEYWORDS[I] + ' ', S)), но вместо пробелов могут быть некоторые скобки или другие символы, поэтому я хотел бы избежать создания нового условия для каждого символа.

Есть ли чистый способ сделать это? Я часто сталкивался с отсутствием функций в Delphi 5

Извините, если мой вопрос несколько запутанный, engli sh не мой родной язык.

Спасибо за ваш время.


Обновление (из комментариев):

Мой список ключевых слов содержит только зарезервированные ключевые слова для Delphi

...