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

Вниз

Большой массив, как?   Найти похожие ветки 

 
Pbulbo   (2004-01-27 22:02) [0]

Как создать массив, более чем на 30000 элементов, на Паскале?


 
Anatoly Podgoretsky ©   (2004-01-27 22:07) [1]

array [1..30001] of


 
Pbulbo   (2004-01-27 22:09) [2]

Имел ввиду 60000 -70000 элементов


 
Anatoly Podgoretsky ©   (2004-01-27 22:11) [3]

array [1..60000] of
array [1..70000] of


 
Dred2k ©   (2004-01-27 22:17) [4]

> на Паскале?

На каком?


 
Pbulbo   (2004-01-27 22:22) [5]

Борланд 7.0
Не получается создать просто "array [1..60000] of", ошибка возникает, максимум можно сделать около 32000, так вот как можно создать очень большой массив? Динамический? Как? За ранее спасибо :)


 
DDA ©   (2004-01-27 22:25) [6]

var b:array [1..60000] of integer;
var b:array [1..60000] of char;
var b:array [1..60000] of byte;
var b:array [1..60000] of string;


 
Islander   (2004-01-27 22:26) [7]

var k: array of something;
begin

SetLength (k, n),


 
Pbulbo   (2004-01-27 22:27) [8]

"var k: array of something;
begin

SetLength (k, n),

"
На паскале так нельзя сделать, выдает ошибку, нужно указывать границу :/


 
Islander   (2004-01-27 22:28) [9]

SetLength (k, n), - вот это, может быть и нельзя, я уже не помню, но по-моему там другая функция была.

А вот array of можно точно


 
DDA ©   (2004-01-27 22:29) [10]

var p:pchar;
begin
p:=StrAlloc(600000);
//...
StrDispose(p);


 
Islander   (2004-01-27 22:31) [11]

Вот то, что ты ищешь

http://rupt.dax.ru/gl7less7.shtml


 
Dred2k ©   (2004-01-27 22:35) [12]

> Pbulbo (27.01.04 22:22) [5]
> Борланд 7.0

Сегмент данных ограничен, нужно выделять руками. GetMem там есть, но он, по-моему, может не более 64K. Поможет или int21h, или забытая мною функция реального режима. Возможно, даже New.
;)


 
Pbulbo   (2004-01-27 22:36) [13]

А поподробней можно :)


 
Dred2k ©   (2004-01-27 22:38) [14]

По-подробней тебе поможет хелп и какая-нить книжка. Уж сейчас-то в яндексе этого добра по bp 7.0 вполне навалом, я думаю.
Только сразу скажу - под DOS писать (даже с экстендером) - не то, что на дельфях, там по-жестче...


 
Pbulbo   (2004-01-27 22:39) [15]

Вот что там написано :
"... версии Delphi 4 впервые введены так называемые динамические массивы. При объявлении таких массивов в программе не следует указывать границы индексов:

var

A: array of Integer;

"
В Паскале нельзя так объявлять массивы :(


 
Pbulbo   (2004-01-27 22:42) [16]

Вот еще вырезка :
"Одним из недостатков языка Паскаль (и Турбо Паскаль) является невозможность создания и использования в программе массивов с переменной размерностью - так называемых динамических массивов. "


 
Dred2k ©   (2004-01-27 22:44) [17]

> Pbulbo (27.01.04 22:39) [15]
> В Паскале нельзя так объявлять массивы :(

Логично. И впредь пиши точнее - для компилятора Borland Pascal 7.0(1) for real mode (DOS). А то запутаешься.
Книгу читаешь не ту. Начни с DOS и > Dred2k © (27.01.04 22:38) [14]


 
Боян Георгиев   (2004-01-27 22:44) [18]

PList = ^TList;
TList = record
Value: integer;
Next: PList;
end;


 
Юрий Федоров ©   (2004-01-27 22:57) [19]

Непрерывно больше 64 к не выделишь. Если только GlobalAlloc (не помню точно, можно ли)
Либо не непрерывно ([18]). либо вариант через санки (32-битная dll)



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

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

Наверх




Память: 0.5 MB
Время: 0.028 c
6-16582
Не знающий
2003-12-04 14:22
2004.02.06
Подключить диск.


14-16740
Yorick
2004-01-14 23:27
2004.02.06
Это новый вирус?


14-16649
pasha_golub
2004-01-13 12:04
2004.02.06
IT-бизнес


1-16336
GIL
2004-01-27 13:53
2004.02.06
ScrollBox.ComponentCount


3-16036
rika
2004-01-12 15:58
2004.02.06
Как вставить в текстовый файл инфу из БД?