Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Передать массив как параметр [D7, XP, 2003]


Wind001 ©   (2009-12-03 16:05:00) 

Добрый день.
Искал в сети как передачу массива, как параметр, нашел пример, вернее несколько одинаковых примеров.
Но примера реализации не нашел ф-ции не нашел.

Вот сама ф-ция


type  B = array[0..26] of Byte;
.......
var
bm: b;
....
function checkSumm(Bm: B ): Byte;
var i: integer;
   CSumm: Byte;
begin
i:=0;  
CSumm:=0;
 CSumm:=(Bm[0] xor Bm[1]);
 for i:= 1 to 25 do
    CSumm:=(CSumm xor bm[i+1] );
 result:=CSumm;
end;

А вот реализация, которая не работает:

var Mass: array [0..26] of Byte;
...... // тут заполнение массива .....
ShowMwssage(IntToStr(checkSumm(b));
end;

И она не работает.


Wind001   (2009-12-03 17:14:00) [1]


> Исправил называется :)
>
> <telepator>
> Пиши так:
> type
>  TMess = array [0..26] of Byte;
> var
>  Mess : TMess;
>
> function CheckSum(b: TMess);
>
> Удачи!

Спасибо! Учел на будущее.


Германн   (2009-12-03 16:49:00) [2]


> Исправляюсь


> Incompatible types: 'B' and 'Array'

Исправил называется :)

<telepator>
Пиши так:
type
 TMess = array [0..26] of Byte;
var
 Mess : TMess;

function CheckSum(b: TMess);

Удачи!
</telepator>


Anatoly Podgoretsky   (2009-12-03 16:48:00) [3]

> Wind001  (03.12.2009 16:40:05)  [5]

Типы разные, Mass должен быть типа В


Wind001   (2009-12-03 16:46:00) [4]

Спасибо поменял на Mass: TByteArray;всё заработало!!!


Wind001   (2009-12-03 16:40:00) [5]

Исправляюсь у меня процедура и реализация в разных модулях по этому "b" встретилась два раза. Mass добавлял в уже в форум, для понятности и проглядел в "b" функции.
Сейчас изменил и в реализации и в форуме.

var Mass: array [0..26] of Byte;
begin
...... // тут заполнение массива .....
ShowMwssage(IntToStr(checkSumm( Mass));
end;


Ошибка
[Error] Unit1.pas(217): Incompatible types: 'B' and 'Array'


korneley   (2009-12-03 16:32:00) [6]


> clickmaker ©   (03.12.09 16:11) [3]
> function  checkSumm(TByteArray: B): Byte;

function  checkSumm(B: TByteArray): Byte;
;))


clickmaker   (2009-12-03 16:11:00) [7]

то В, то bm, то Mass, то опять b...

в SysUtils уже определен тип TByteArray

var Mass: TByteArray;
...... // тут заполнение массива .....
ShowMwssage(IntToStr(checkSumm(Mass));

function checkSumm(TByteArray: B): Byte;


Anatoly Podgoretsky   (2009-12-03 16:09:00) [8]

> Wind001  (03.12.2009 16:05:00)  [0]

Что это означает "не работает"


Игорь Шевченко   (2009-12-03 16:09:00) [9]


> И она не работает.


Больно слышать


Наверх

Титульная страница Поиск, карта сайта Написать письмо