![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Pascal String
Chlavik © (2004-12-06 01:14:00)Скажите пожалуйста строки такого типа Null Terminated ?
т.е. кроме размера строки перед началом там есть еще 0 символ в конце ? Я могу написать что типа
var S:string;
p:PChar;
begin
P:=Pointer(S) вместо PChar потому что при последнем вызывается LStrToPChar ?
default (2004-12-06 03:13:00) [21][5]
если CPU пользоваться не умеешь, то мог так испытать
if S[Length(S)+1] = #0 then ShowMessage('')
или хелп прочитать
GuAV (2004-12-06 03:10:00) [22]2 default ©
:-)
GuAV (2004-12-06 03:09:00) [23]Будет.
default (2004-12-06 03:09:00) [24]Chlavik © (06.12.04 03:07) [5]
БУДЭ
Chlavik (2004-12-06 03:07:00) [25]Я имею ввиду
var s:string;
begin
s:='Test';
так будет в памяти после последней буквы 't' нулевой символ а то что nil если строка пуста то я и так знаю...
GuAV (2004-12-06 03:06:00) [26]Если указатель на первый символ строки то есть.
Если указатель nil, то вопрос неуместен :)
Chlavik (2004-12-06 03:04:00) [27]
> Piter © (06.12.04 01:48) [1]
На первый символ строки или nil если строка нулевой длины...
Так вы мне так и не сказали есть там нулевой символ или нет ???
jack128 (2004-12-06 02:05:00) [28]в данном конкретном коде - nil. А что некоректного??
Null Terminatedстроки - это строки, которые закончиваются символом #0.
Chlavik © (06.12.04 1:14)
P:=Pointer(S) вместо PChar потому что при последнем вызывается LStrToPChar ?
Потому что борланду так захотелось. Дело в том, что string не полностью совместимы с PChar. Пустая строка в string хранить как nil, а не как указатель на символ #0, функция LStrToPChar как и проверяет s на nil и, если что , возвращает нужное значение...
Piter (2004-12-06 01:48:00) [29]я так и не понял в чем вопрос конкретно...
P:=Pointer(S)
некорректно. И как ты думаешь - куда будет указывать P?