Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Длина строковой переменной [D7, XP]


Страницы:   1 2 3

fend ©   (2007-09-28 08:48:00) 

Как определить длину переменной string?


Германн   (2007-09-28 15:12:00) [21]


> evvcom ©   (28.09.07 13:56) [24]
>
> Опять понеслось :)
>

Во-во. Розыча на них нет :-)


DVM   (2007-09-28 14:37:00) [22]


> evvcom ©   (28.09.07 14:03) [26]

Ну кто про себя знает, тот себя в моих словах увидел :)


Инс   (2007-09-28 14:28:00) [23]


> или указатель на некую структуру в памяти.

или адреснекой структуры в памяти правильнее. Дабы не было придирок к словам.


Инс   (2007-09-28 14:27:00) [24]


> Johnmen ©   (28.09.07 14:12) [30]

Переменная типа AnsiString представляет собой 32-битный указатель, значение которого равно nil в случае '' или указатель на некую структуру в памяти. В последнем случае сама строка находится в памяти, по адресу численно равному значению этого указателя. Если быть точнее - то указатель указывает именно на первый символ. По отрицательному смещению от него хранится служебная информация - длина строки и счетчик ссылок. Строка завершается нулевым символом.

В чем суть претензии?


Johnmen   (2007-09-28 14:12:00) [25]


> Инс ©   (28.09.07 13:58) [25]
> > Что за байты? Что в них?
> Анатолий ответил.

Я спрашивал у тебя.
Если, конечно, тебе не трудно, всё же ответь.


Инс   (2007-09-28 14:05:00) [26]


> Я бы сказал проще, народу хочется поразвлечься

А чем же еще заниматься в рабочее время :) Не работой же!


Инс   (2007-09-28 14:05:00) [27]


> Anatoly Podgoretsky ©   (28.09.07 14:04) [27]

По-моему - тоже


Anatoly Podgoretsky   (2007-09-28 14:04:00) [28]

> Инс  (28.09.2007 13:58:25)  [25]

И помоему одназначно, по крайней мере для указаного типа.


evvcom   (2007-09-28 14:03:00) [29]


> DVM ©   (28.09.07 12:58) [13]

Я бы сказал проще, народу хочется поразвлечься. А то, что Инс © уловил намек, так мне то же самое показалось. Ну раз нет, тогда сорь.


Инс   (2007-09-28 13:58:00) [30]


> Что за байты? Что в них?

Анатолий ответил.


evvcom   (2007-09-28 13:56:00) [31]

Опять понеслось :)


Johnmen   (2007-09-28 13:55:00) [32]


> Инс ©   (28.09.07 13:38) [21]

Принимается.
Итак.
> Так, к сведению... Длина переменной string всегда равна 4 байтам.
Что за байты? Что в них?


Anatoly Podgoretsky   (2007-09-28 13:51:00) [33]

> Johnmen  (28.09.2007 13:08:18)  [18]

Или nil или указатель на структуру. Для длинных строк.


Инс   (2007-09-28 13:38:00) [34]


> Johnmen ©   (28.09.07 13:08) [18]

Спорить будем? :) Давайте, только прежде чем начать, определимся с терминами, чтобы не было придирок к словам, а спор касался только сути. С моей стороны такие тезисы:
1. Говоря о типе string подразумеваю включенную директиву $H, что подразумевает AnsiString, а не ShortString, так как именно так и бывает в 99.9% случаев.
2. Подразумеваю компилятор D7, указанный в вопросе.
3. Между словами "переменной" и "string" в [3] упущенно слово "типа", так как оно явно читается из контекста.


Инс   (2007-09-28 13:14:00) [35]


> DVM ©   (28.09.07 13:13) [19]

Тогда прошу прощения. У меня была причина так подумать.


DVM   (2007-09-28 13:13:00) [36]


> Инс ©   (28.09.07 13:08) [17]
>
> > DVM ©   (28.09.07 12:58) [13]
>
> Я кажется понимаю намек... Скажите пожалуйста, уважаемый,
>  [7] и [9] - было направлено на меня или в воздух? Если
> ко мне то:

Ну вы блин даете. Почему ж на вас? Тут каждая вторая ветка что подлиннее такая.


Johnmen   (2007-09-28 13:08:00) [37]


> Инс ©   (28.09.07 10:18) [3]
> Так, к сведению... Длина переменной string всегда равна 4 байтам.

Уверен?
Что за байты? Что в них?


Инс   (2007-09-28 13:08:00) [38]


> DVM ©   (28.09.07 12:58) [13]

Я кажется понимаю намек... Скажите пожалуйста, уважаемый, [7] и [9] - было направлено на меня или в воздух? Если ко мне то:
Вспоминаются два наших с вами спора. Первый - там что-то про функции, которые сами выделяют память. Я привел пример ConvertSidToStringSid. Поверьте, я не нашел его в гугле для того, чтобы подловить вас на неточности. Я и сам когда-то думал, что в WinAPI принято, что память всегда выделяет вызывающая сторона, пока сам не столкнулся с обратным. Доказательство того, что я с этим столкнулся раньше момента спора:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1322

Второй - это совсем недавнешний спор по WinAPI. Тут тоже дело не в поисковиках. Информацию для своих аргументов я брал из книг того же Рихтера, Харта, Соломона и Руссиновича да и из личных наблюдений. Просто я когда-то нашел время их прочесть и допускаю, что у некоторых такого времени быть не могло. Я не вижу в этом ничего плохого. Зато у других было время заняться чем-то другим, чем у меня времени не было.


Anatoly Podgoretsky   (2007-09-28 13:06:00) [39]

> Leonid Troyanovsky  (28.09.2007 13:04:15)  [15]

Явки, пароли


Leonid Troyanovsky   (2007-09-28 13:04:00) [40]


> DVM ©   (28.09.07 12:58) [13]

> Правильную то невозможно. Но вот оценить, что информация
> неправильна зачастую ни одна из спорящих сторон не в состоянии,

Значит, надо ждать третью ;)

Кста, это не философия, а просто расплывчатые фразы,
поконкретней - кто, где, когда и при каких обстоятельствах.

--
Regards, LVT.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо