Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
Инс ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.043 c
11-1173903627
VVU
2007-03-14 23:20
2007.10.21
Прямоугольник текста в StrigGrid


15-1190136505
iop
2007-09-18 21:28
2007.10.21
А почему мы одних любим...


2-1190805776
User.exe
2007-09-26 15:22
2007.10.21
Помогите! Как узнать букву системного диска?


11-1174410437
Dmitriy___
2007-03-20 20:07
2007.10.21
ListView - проблема с LVItems


15-1190571586
vasIZmax
2007-09-23 22:19
2007.10.21
Плохой код





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский