Невозможно изменить индексацию динамического массива в DelphiDelphi , Базы данных , ИндексыВ Delphi, когда мы объявляем массив типа
мы создаем массив из Если вместо этого мы объявляем динамический массив
и позже выделяем
то элементы будут индексированы от 0 до N - 2. Можно ли сделать так, чтобы они были индексированы от 2 до N (скажем)? Нет, в Delphi динамические массивы всегда индексируются с нуля. Однако, есть несколько альтернативных подходов, которые можно использовать для достижения подобного поведения. Один из них - использование указателей:
Обратите внимание, что при использовании этого подхода теряется проверка диапазона, и комбинирование этого с массивами, начинающимися не с нуля, является очень плохой идеей! Другой подход - написание простой функции "перевода", которая будет принимать индекс в диапазоне от 2 до N и возвращать индекс от 0 до N-2, просто вычитая 2 из параметра, например:
И вы можете вызывать массив таким образом:
Конечно, вы можете добавить проверку диапазона внутри функции и, возможно, дать ей более короткое имя. Или даже лучше, обернуть доступ к массиву функцией, такой как эта:
Надеюсь, это поможет! В данном контексте рассматривается создание массивов в Delphi и способы их индексации, а также альтернативные подходы для достижения индексации массивов от 2 до N для динамических массивов, которые по умолчанию индексируются с нуля. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |