Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > размер массива, на который указывает PChar


Автор: Vasya 28.6.2003, 19:58
Привет! var Buf: PChar; .... begin Buf := PChar(SomeThing); Как узнать размер этого массива? Спасибо!

Автор: <Spawn> 28.6.2003, 20:17
Длину? Или размер в байтах? Если длину, то пойдет Length(). А если в байтах, то наверна цикл от 1 до Length() и прибавляешь к результирующему значению размер одного символа.

Автор: Vasya 28.6.2003, 20:37
Я не врубился, размер символа не 1 байт?
Уточню, мне надо количество элементов(символов) массива, Length(Buf) = 3(хотя это неправильно) , но их там явно больше!

Автор: &-ray 28.6.2003, 22:37
Делаю так:

Цитата

procedure TForm1.Button1Click(Sender: TObject);
var
c: pchar;
begin
c:=pchar('12345');
caption:=inttostr(length©);
end;


и все работает правильно однако biggrin.gif

Напиши подробнее, что ты делаешь

Автор: Fantasist 30.6.2003, 16:59
Цитата
Buf := PChar(SomeThing);



Ты не указал, что такое SomeThing, а именно от него все и зависит.

Автор: Vasya 30.6.2003, 17:18
Image.Picture.Bitmap
Но, как я понял, это ни в какие рамки не лезет

Автор: &-ray 30.6.2003, 19:49
Цитата
Image.Picture.Bitmap
confused.gifconfused.gifconfused.gifconfused.gif

Автор: Mikel 1.7.2003, 10:06
Если в PChar'e bitmap седит, то он там обрезан до первого #0. Так что используй указатели, а размер указывай явно и сохраняй.
Что-то типа этого

Var P:Pointer;
Size:Integer;
begin
//определяешь size
GetMem(P,Size);
//работаешь с этим делом
//а затем
FreeMem(P,Size);
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)