Главная страница
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.024 c
1-1103914663
Redlord
2004-12-24 21:57
2005.01.16
FindFirst файлы и папки


4-1101326612
Dmitry_04
2004-11-24 23:03
2005.01.16
Как отловить событие, когда была переключена раскладка клавиатуры


9-1095934427
MANGOL
2004-09-23 14:13
2005.01.16
сжатие графики


14-1104064273
Profi
2004-12-26 15:31
2005.01.16
Delphi 2005


1-1104224195
Vasiliy
2004-12-28 11:56
2005.01.16
Помогите нужен тулбар