![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Длина строковой переменной [D7, XP]
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.