Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизМассив как параметр функции Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.05 c