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

Вниз

не получаеться обратиться к массиву   Найти похожие ветки 

 
Sfagnum ©   (2003-08-25 17:21) [0]

есть такой тип
type t: array[0..MAXPLEN, char] of integer;

MAXPLEN - константа.

надо сделать динамический массив таких типов

type t = array[0..MAXPLEN, char] of integer;
var r: array of t;
Вроде всё нормально, но у меня не получаеться обратиться к конкретному элементу...

может я не правильно его объявляю?
я хочу n-ое количество таких записей в массиве

Заранее спасибо
Sfagnum


 
MBo ©   (2003-08-25 17:23) [1]

Как именно не получается?


 
Skier ©   (2003-08-25 17:24) [2]

-SetLength(...) используешь ?
-Код покажи


 
Романов Р.В. ©   (2003-08-25 17:25) [3]

r[i][5, 7] := 30;


 
Skier ©   (2003-08-25 17:26) [4]

Уверен ?


 
Романов Р.В. ©   (2003-08-25 17:31) [5]


> Skier © (25.08.03 17:26) [4]
> Уверен ?

Если не пойдет - обработать напильником


 
Skier ©   (2003-08-25 17:32) [6]

>Романов Р.В. © (25.08.03 17:31) [5]
Я к тому что индекс 7 вряд ли пройдёт.


 
default ©   (2003-08-25 17:33) [7]

Романов Р.В. ©
там же Char есть - наверно так будет r[i][5, #7] := 30;


 
Sfagnum ©   (2003-08-26 13:35) [8]

>Skier © (25.08.03 17:24) [2]
>-SetLength(...) используешь ?
>-Код покажи

-вообще да
-показал

2 Романов Р.В.
спасибо получилось

что самое странное оказалось можно двумя сполсобами обратиться...
const MAXPLEN = 24;
type t = array[0..MAXPLEN, char] of integer;
var r: array of t;
begin
SetLength(r,2);
r[1][1,"d"] := 25;
ShowMessage(IntToStr(r[1][1,"d"]));
r[2][10]["a"] := 45;
ShowMessage(IntToStr(r[2][10]["a"]));
end;

причём
const MAXPLEN = 24;
type t = array[0..MAXPLEN, char] of integer;
var r: array of t;
begin
SetLength(r,1);
r[1][1,"d"] := 25;
ShowMessage(IntToStr(r[1][1,"d"]));
//r[1][1]["d"] := 45;
ShowMessage(IntToStr(r[1][1]["d"]));
end;

во втором случае не то значение - в принципе пустое

не объясните разницу если не влом


 
han_malign ©   (2003-08-26 13:56) [9]

> в принципе пустое
- IntToStr - не может выдать пустое значение(""), хотя бы "0", но выдаст...

никакой разницы
@r[i,j,k]=@r[i][j,k]=@r[i][j][k]=PInteger(PChar(r)+i*sizeof(t)+(j*256+ k)*4)


 
han_malign ©   (2003-08-26 14:01) [10]

>SetLength(r,1);
>r[1][1,"d"] := 25;
>ShowMessage(IntToStr(r[1][1,"d"]));

- динамический массив начинается с 0-го элемента, SetLength(r,1) - означает что доступны элементы с 0-го по 0-й, а r[1] - это ты уже вылез за пределы выделенной памяти...

правильно будет ...r[ 0][1,"d"]...


 
Skier ©   (2003-08-26 14:14) [11]

>Sfagnum © (26.08.03 13:35)
Поставь галку Range Checking и выполни "второй случай"
Увидишь интересную вещь...


 
Sfagnum ©   (2003-08-26 14:17) [12]

>> в принципе пустое
>- IntToStr - не может выдать пустое значение(""), хотя бы "0", но выдаст...

просто какое-то достаточно большое число которое никто никуда не ложил => произвольное число => для меня оно значение не имеет =>
пустое значение в смысле бессмысленное

извените за не правильную формулировку

>правильно будет ...r[0][1,"d"]...

мда... скоро совсем писать разучусь всё AccEzz ентот долбаный...
(стыдно...)



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
4-24739
mox
2003-07-08 11:45
2003.09.08
Почему не копируется текст edit-ов др.окна


6-24581
Delpher_Gray
2003-07-02 19:38
2003.09.08
Скаячка файлов из интернета через HTTP протокол


8-24560
dansik
2003-05-09 03:26
2003.09.08
Bitmap


1-24507
Zheks
2003-08-27 10:25
2003.09.08
Рисование на Image


1-24494
Adoon
2003-08-27 18:52
2003.09.08
Создание кнопок в ToolBar е