![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Добрый вечер.
Ситуация: Код:
type PMytype:^Mytype; Mytype: record data: array [1..64000] of byte; end; .................................................. procedure test; var stroka:string; begin stroka:='1111'; func(@stroka) .................................................. end; function func(buf:PMytype); var st:string; i:integer; begin st:=''; for i to 50 do st:=st+chr(buf^.Data); .................................................. end; Орды байтов строки @stroka не передаются в массив ... Последний раз редактировалось Admin, 10.04.2013 в 19:05. |
|
#2
|
||||
|
||||
|
первые 4 байта в массиве определяет количество элементов, вторые - адрес первой ячейки массива. вроде так.
|
|
#3
|
||||
|
||||
|
И ещё желательно функции местами поменять, а то из test не видно func
|
|
#4
|
|||
|
|||
|
Цитата:
Код:
type
PMytype=^Mytype;
Mytype= record
data: array [0..64000] of byte;
end;
function func(buf:PMytype):Boolean;forward;
procedure test;
var
stroka:string;
begin
stroka:='1111';
func(Pointer(stroka))
end;
function func(buf:PMytype):Boolean;
var
st:string;
i:integer;
begin
st:='';
for i :=0 to 50 do begin
if buf.Data[i]=0 then break;
st:=st+chr(buf.Data[i]);
end;
end;
|