Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Длина строковой переменной   Найти похожие ветки 

 
Инс ©   (2007-09-28 16:05) [40]


> Нет, не пофиг, это сделано специально для совместимости
> с типом PChar.

Правда важно понимать, что совместимость эта в общем то односторонняя.


 
DVM ©   (2007-09-28 16:07) [41]


> А функции работают не с PChar, а с ASCIIZ

О каких функциях ведете речь?
Я в том смысле, что функциям надо знать где строка оканчивается.


 
Anatoly Podgoretsky ©   (2007-09-28 16:10) [42]

> Инс  (28.09.2007 16:05:40)  [40]

Полная


 
evvcom ©   (2007-09-28 16:12) [43]


> Германн ©   (28.09.07 15:12) [34]
>
>
> > evvcom ©   (28.09.07 13:56) [24]
> >
> > Опять понеслось :)
> >
>
> Во-во. Розыча на них нет :-)

у него дела и поважнее есть. Наверное, уже Пашку пропивает :)


 
Anatoly Podgoretsky ©   (2007-09-28 16:12) [44]

> DVM  (28.09.2007 16:07:41)  [41]

Естественно, но к PChar это не относится, это изобретение Борланда, указатель на символ, а функции предполагаю, что за этим символом есть еще и один из них признак окончания строки. Сама аббревиатура означает (расшифровка) - ASCII (ansi) Zero


 
Инс ©   (2007-09-28 16:17) [45]


> Полная

Не сказал бы. String физически соответствует PChar-у, но не наоборот. Но это не значит, что String можно всегда приводить к PChar и это будет безопасно. На уровне PChar компилятор забывает, что это особый финализируемый тип. Так что совместимость тут вообще постольку поскольку, только на определенном уровне.


 
Инс ©   (2007-09-28 16:19) [46]


> Естественно, но к PChar это не относится, это изобретение
> Борланда, указатель на символ

PChar это не просто ^Char. Это тоже особый для компилятора тип.


 
{RASkov} ©   (2007-09-28 16:32) [47]

var S: AnsiString;
-8|-4| 0 | 1 | 2 | 3 | 4 |
вот строка (S) - "ABCDE"
(992)-8 - кол-во ссылок - 1
(996)-4 - длина строки - 5
(1000)0 - A (#65)
(1001)1 - B (#66)
(1002)2 - C (#67)
(1003)3 - D (#68)
(1004)4 - E (#69)
(1005)5 - #0
Так что ли получается?
Т.е. тип String это тот же самый PChar только со служебной частью в начале...


 
Германн ©   (2007-09-28 16:36) [48]


> Т.е. тип String это тот же самый PChar только со служебной частью в начале...
>

Ну если вспомнить про фаберже, то да. Но в "служебной части" то и все самое важное :-)


 
Инс ©   (2007-09-28 16:36) [49]


> Т.е. тип String это тот же самый PChar только со служебной
> частью в начале...

Это финализируемый тип, со всеми вытекающими. Вот две хорошие статьи:
http://www.rsdn.ru/article/Delphi/dynarrays.xml
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1206


 
Anatoly Podgoretsky ©   (2007-09-28 16:47) [50]

> Инс  (28.09.2007 16:19:46)  [46]

Особый конечно, из-за требований по работе со строками.
Но для работы с WinApi он полностью совместимый.


 
Инс ©   (2007-09-28 17:02) [51]


> Anatoly Podgoretsky ©   (28.09.07 16:47) [50]

Из-за того, что многие думают, что PChar и String полностью совместимы, очень часто возникают ошибки, особенно часто видишь советы передавать String-и между DLL и приложением под видом PChar, при этом не упоминая ряд ограничений.


 
Германн ©   (2007-09-28 17:15) [52]


> особенно часто видишь советы передавать String-и между DLL
> и приложением под видом PChar

А за такие советы надо канделябром по морде.


 
Anatoly Podgoretsky ©   (2007-09-28 19:14) [53]

> Инс  (28.09.2007 17:02:51)  [51]

Это они уже виноваты, неправильно используют string, но это к PChar отношения не имеет.
Написать неправильно можно и для Integer - например MaxInt + 1 и отключение рантайм проверки
или for byte := 1 to 255 и удивляться некоторым эффектам.


 
Anatoly Podgoretsky ©   (2007-09-28 19:14) [54]

> Германн  (28.09.2007 17:15:52)  [52]

Не страшно, но не нужно и это не про канделябр.



Страницы: 1 2 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.027 c
15-1190375811
sTEPler
2007-09-21 15:56
2007.10.21
юникс


4-1176956104
roughneck
2007-04-19 08:15
2007.10.21
Подсказки


15-1190273650
Azize
2007-09-20 11:34
2007.10.21
Посоветуйте книгу


2-1190775505
Alex7
2007-09-26 06:58
2007.10.21
Как ограничить работу проги только с конкретных компов


2-1190627331
АндрейК
2007-09-24 13:48
2007.10.21
множественный выбор в DBGrid