Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Массив как параметр функции   Найти похожие ветки 

 
Cardinal ©   (2004-12-30 13:27) [0]

Господа, есть к вам один ламерский вопрос. В случае, когда параметром моей функции является массив, у меня возникают некоторые проблемы. Мне требуется написать функцию, которая будет принимать массив (a: array [1..32] of byte), а возвращать строку, состоящую из символов, ANSII коды которых соответствуют значениям элементов массива.

function ByteArrayToStr(a: array [1..32] of byte): string;

Не компилируется: "OF expected but "[" found". Получается статические массивы нельзя использовать в параметрах функций и процедур? Пишу

function ByteArrayToStr(a: array of byte): string;

Компилится. Если в теле процедуры использовать функцию Copy, то
получаю "Incompatible types". Если в той же функции объявить переменную b: array of byte, то copy отлично работает...

Помогайте, пожалуйста!


 
Anton_K ©   (2004-12-30 13:31) [1]


type
Tmyarray=array [1..32] of byte;
...
function ByteArrayToStr(a:Tmyarray):string;
...


 
Digitman ©   (2004-12-30 13:43) [2]


> требуется написать функцию, которая будет принимать массив
> (a: array [1..32] of byte), а возвращать строку, состоящую
> из символов, ANSII коды которых соответствуют значениям
> элементов массива


а есть ли вообще смысл писать такую ф-цию ?

1. предположим, символы в массиве предст-т собой символы нуль-терминированной строки

тогда

var
 m: array [1..32] of byte;

 s: String;
..
s := StrPas(@m)

2. предположим, символы в массиве НЕ предст-т собой символы нуль-терминированной строки, т.е. печатаемыми символами строки по дифолту считаются все байты массива

тогда

var
 m: array [1..32] of byte;
 s: String;
..
SetLength(s, SizeOf(m));
StrLCopy(PChar(s), @m, SizeOf(m));


 
Sandman25 ©   (2004-12-30 14:37) [3]

[1] Anton_K ©   (30.12.04 13:31)

Не забываем добавлять const перед неизменяемыми параметрами.



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
8-1097334766
DL
2004-10-09 19:12
2005.01.16
Преобразование массива в bitmap


1-1104831644
Dammit
2005-01-04 12:40
2005.01.16
Как создать обработчик события при нажатии на кнопки Развернуть?


11-1085550975
Ricko
2004-05-26 09:56
2005.01.16
Вопрос по koledb


6-1098809212
Mirror
2004-10-26 20:46
2005.01.16
WININET.DLL


1-1104310242
Mr.V
2004-12-29 11:50
2005.01.16
TEdit