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