Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
1-1104230829
BFG9k
2004-12-28 13:47
2005.01.16
Отрисовка одной ячейки в StringGrid


14-1103807509
TUser
2004-12-23 16:11
2005.01.16
Где покупают


14-1104048362
Чеширский_Кот
2004-12-26 11:06
2005.01.16
Где именинники?


3-1103005982
Mefodiy
2004-12-14 09:33
2005.01.16
Пустой DBGrid при подключении к Oracle через dbExpress


1-1104380084
race1
2004-12-30 07:14
2005.01.16
форма на форме




   Наверх