Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

PChar

Можете объяснить что за тип PChar и как его использовать.
Только не пишите очень сложными фразами, я только пару дней как учу
Delphi :)

Номер выпуска : 4267
Возраст листа : 565 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/347123
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Thu, 7 Apr 2005 23:13:17 +0300 (#347123)

 

Ответы:

Строка. Почти STRING.

type PChar = ^Char;

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

одного символа. Предполагается, что это первый символ в строке. Адреса
остальных символов легко получить простым инкрементом. Или сложением, если
известен индекс. Отличается от STRING тем, что не предусматривает хранение
длины строки. Вместо этого в самом конце строки помещается символ с нулевым
кодом - то есть равным CHR(0) - и предполагается, что в самой строке, то
есть в её середине, таких символов нет. И это практически всегда так, ибо
этот символ во всех распространённых кодировках специально зарезервирован
именно для этой цели. Поэтому получить количество символов в такой строке
можно только её циклическим просмотром. Из-за этого работа с PChar иногда
происходит медленнее. Но далеко не всегда. Ведь и для "обычных" строк нужно
проверять условие достижения конца строки. И будет ли это условие сравнением

индекса с длиной строки или сравнением текущего символа с CHR(0) - большой
роли не играет. Однако PChar имеют то неоспоримое преимущество, что строка
может быть любой, даже заранее не известной, длины. Тип при этом остаётся
прежним. Для сравнения: STRING[30], STRING[100] и STRING - три разных типа.
Этот тип пришёл из C и C++, где представление строк в таком вот виде
является самым что ни на есть стандартным. Не буду объяснять почему, но
Windows часто в качестве параметров для своих функций рассчитывает получить
строки именно в таком виде. Поэтому разработчики Delphi и предусмотрели
специальных строковый тип.
Пожалуй, ещё более простыми фразами не смогу. А что касается указателей, то
это отдельная и очччень большая тема. Пока не заморачивайся.

PS В C++ уже как семь лет имеется шаблонный класс std::basic_string<>,
который меняет ситуацию. В использовании куда как более удобен, чем PChar и
даже STRING. Могу только сказать - наконец-то! Осенило создателей языка.
Чего было так долго тянуть...

--
С уважением, boroden***@s*****.ru

Номер выпуска : 4268
Возраст листа : 565 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/347217
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Шматко А.А. Fri, 8 Apr 2005 08:43:11 +0400 (#347217)