Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Ярославвв
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 38
#1

Проверка символа на вхождение

06.10.2016, 21:07. Просмотров 778. Ответов 11

решил я такой проверить
Pascal
1
2
if not(stroka[i] in ['А'..'Я']) then
    flag:=False;
при этом stroka[i]='М'
по сути влазить и менять флаг не должно, но оно залазило в условие .
я решил посмотреть в дебагере ,когда stroka[i]='М'----ord(stroka[i]='М').
выдало код 1052,в аски даже такого нет. Где я ошибся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2016, 21:07
Ответы с готовыми решениями:

Дан символ C и строка S. Удвоить каждое вхождение символа C в строку S
буду весьма благодарен))

Строка: Если какой-то символ встречается в строке > 1, второе вхождение символа заменить на 2, третье - на 3 и т.д.
Дана символьная строка из случайных букв. Если какой-то символ встречается в...

Проверка первого символа в Edit
Привет всем! Вообщем такой вопрос, как сделать чтобы в Edit первый символ был...

Проверка символа по ascii коду
Приветставую! Подскажите, как проверить символ по ascii коду, в задании...

Мгновенная проверка на корректность вводимого символа
Хочу прикрутить защиту от введения неправильных данных, причём так, чтобы...

11
Arcor
4881 / 1833 / 382
Регистрация: 20.11.2009
Сообщений: 5,887
Записей в блоге: 1
06.10.2016, 21:15 #2
чтобы так писать надо чтобы stroka была типа AnsiString

Добавлено через 3 минуты
вот простой пример для теста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.Button1Click(Sender: TObject);
var SA: AnsiString;
    S: String;
begin
  SA := 'ПРИВЕТ МИР';
  if CharInSet(SA[1], ['А'..'Я']) then
    ShowMessage('1) OK')
  else
    ShowMessage('1) NOT OK');
 
  S := 'ПРИВЕТ МИР';
  if CharInSet(S[1], ['А'..'Я']) then
    ShowMessage('2) OK')
  else
    ShowMessage('2) NOT OK');
end;
CharInSet тоже самое по сути что и у вас с in, только мой компилятор XE говорит что лучше использовать так, как я написал
2
Ярославвв
0 / 0 / 0
Регистрация: 10.11.2015
Сообщений: 38
06.10.2016, 21:18  [ТС] #3
вот уж не знал, спасибо.
0
krapotkin
3389 / 3004 / 1039
Регистрация: 14.04.2014
Сообщений: 14,575
Записей в блоге: 15
07.10.2016, 00:15 #4
вообще для версий делфи старше 2007 проще так

Delphi
1
2
3
const Ltrs='АБВГДЕЁЖ...';
....
if (Ltrs.Contains(ch)) then
0
MyEternity
96 / 96 / 25
Регистрация: 25.04.2016
Сообщений: 525
07.10.2016, 00:21 #5
Цитата Сообщение от krapotkin Посмотреть сообщение
вообще для версий делфи старше 2007 проще так
Что я делаю не так?
0
Миниатюры
Проверка символа на вхождение  
Arcor
07.10.2016, 00:46
  #6

Не по теме:

потому что не с версии 2007, а выше, думаю с XE2, по крайней мере в документации начало лежит для этого метода с XE2

0
northener
07.10.2016, 01:08
  #7

Не по теме:

Цитата Сообщение от krapotkin Посмотреть сообщение
вообще для версий делфи старше 2007 проще так
Ну это ты хватил! Разрабы после перехода на Юникод ещё долго не могли справиться с этой проблемой. Чего только стоит их постоянные дурные советы использовать CharInSet вместо in. Хотя из самого кода CharInSet видно было что это одно и тоже. Вспомню еще и попытки замены in и CharInSet на inOpArray Function, которая тоже выглядела костылем.

0
krapotkin
3389 / 3004 / 1039
Регистрация: 14.04.2014
Сообщений: 14,575
Записей в блоге: 15
07.10.2016, 10:02 #8
никто не мог смириться с потерей Set Of Char
но это уже не изменить ))

Добавлено через 5 минут
по версиям
тут все либо на д7 либо на 10-10.1. Откуда взялась XE, неясно. Да и неинтересно. Раз автор не сообщает, придумываю сам.
Телепатировать не хочу. Помнить год подключения той или иной фичи - тоже.

для версий, где еще нет system.SysUtils.TStringHelper
используем олдскульное
Delphi
1
if pos(ch, ltrs)<>0
0
Arcor
07.10.2016, 10:08
  #9

Не по теме:

Если вы на этих версиях работаете, это не значит что все...не надо за всех говорить :)

0
MyEternity
96 / 96 / 25
Регистрация: 25.04.2016
Сообщений: 525
07.10.2016, 11:00 #10
Цитата Сообщение от Arcor Посмотреть сообщение
Если вы на этих версиях работаете, это не значит что все...не надо за всех говорить
Поддерживаю.
Цитата Сообщение от krapotkin Посмотреть сообщение
тут все либо на д7 либо на 10-10.1. Откуда взялась XE, неясно
Вот нравится мне ХЕ (Юникод с 2009 уже есть, следовательно в ХЕ тоже есть ). Семерка уже старовата, а в ХЕ еще не раздули RTTI до такой степени, что EXE с пустой формой весит под 2 метра.
0
krapotkin
3389 / 3004 / 1039
Регистрация: 14.04.2014
Сообщений: 14,575
Записей в блоге: 15
07.10.2016, 11:13 #11
Цитата Сообщение от Arcor Посмотреть сообщение
не надо за всех говорить
Я и не говорю за всех. Я говорю, что ТС должен заботиться сам указывать версию, а если не указал, то можно брать из головы.

MyEternity, нынче даже в музыкальной открытке можно найти пару метров памяти. что это оптимизирует?
0
Arcor
4881 / 1833 / 382
Регистрация: 20.11.2009
Сообщений: 5,887
Записей в блоге: 1
07.10.2016, 18:52 #12
Цитата Сообщение от krapotkin Посмотреть сообщение
нынче даже в музыкальной открытке можно найти пару метров памяти. что это оптимизирует?
никто не запрещал еще оптимально программировать - так как это не каждому дано, вот и прогать сали ващще не оптимально, а если речь идет об открытке.. то тут явно си или ася, на них прогают в основном МК, а вот прогресс двинулся. и придумали такой бред как Arduino с высокоуровневой системой программирования МК... это бред для программеров-электриков - домохозяек только лишь и придумали... что касается оптимизации это было.

Не по теме:


А на счет брать из головы... вы тут сидите уже долго, я сижу долго в курсе вродже как всей текучки, а вот приходит студент, задачу надо решить.. а тут ему бац и так "надо позаботиться о версии самому ТС"..... Та ну че тут распинаться.. Ясно все и так.. как не Contsins Тогда полюбому JSON!!

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

Как читать строку в массив до определенного символа и после продолжить чтение опять до символа
Как читать строку в массив до определенного символа и после продолжить чтение...

Как удалить от символа и до символа
В общем из названия темы все понятно. Как удалить при помощи функции Delete от...

Копируем всё от символа до символа
Ребзя, такой вопрос Есть html страница, в ней нахожу допустим нужный мне...


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

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

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