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

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

Динамический массив для структуры файла...


xyz ©   (2002-12-27 00:48:00) 

TMyfile = record
str : array of string;
end;

Это нельзя, а хочется...
Может быть кто-нибудь подскажет?


xyz   (2002-12-30 01:01:00) [1]

Sha ©
Как перемещаться?
+ или - 1

Кроме того, специфика файла будет такова, что в каждой записи будет ссылка на другую запись(это обязательное условие).

Возможно кто-то уже догадался, что я пытаюсь реализовать семантические сети с нуля.


Sha   (2002-12-29 21:26:00) [2]

xyz © (29.12.02 18:48)

Допустим, у тебя есть реализация того, что ты хочешь.
Ты пробовал дальше думать. Как, например будешь позиционироваться, передвигаться на следующую/предыдущую.
У меня были похожие проблемы. Не морочься. Используй BlockRead.


xyz   (2002-12-29 18:48:00) [3]

Текстовый файл - неприемлимо!
Он слишком долго работает и там нет великой и непобедимой команды seek();
Вот если бы текстовый файл с командой seek(); ...//размечтался


Danlicha   (2002-12-29 01:42:00) [4]

Имхо проще, если только строчи писать надо, пользоваться PChar-ом.


Kotka   (2002-12-29 01:12:00) [5]

Я вот только одного не пойму: нафиг корячиться со всякими recordи blockwrite, если можно писать, как в обычный текстовый файл, или xyzpretty fly for that?


PVOzerski   (2002-12-28 22:09:00) [6]

2Кот Бегемот ©:
Вы будете смеяться, но sizeof(mypunyfile), независимо от packed, будет всегда равным 4, и mypunyfile будет содержать указатель на массив, т.е. будет иметь смысл лишь до окончания работы программы.


Кот Бегемот   (2002-12-28 21:29:00) [7]

Хотя в этом случае наверно лучше использовать не recordа packed record- хотя не уверен - что будет если в в записи будет несколько полей - как там с выравниванием на границу слова будет работать ???


Кот Бегемот   (2002-12-28 21:23:00) [8]

2PVOzerski © (28.12.02 20:26)
Да можно читать сразу в record


TMyfile = record
str : array of string;
end;

var
mypunyfile : TMyfile;
f: file;
begin
SetLength(mypunyfile.str, 180)
BlockRead(f, @mypunyfile , syzeof(mypunyfile){ или Length(mypunyfile.str) - надо попробовать :) } );


IMHO должно работать :)))


PVOzerski   (2002-12-28 20:26:00) [9]

Либо (если 255 символов на строку хватит), пользоваться shorstring, либо массивами of char, опять же фиксированной длины, либо (расширяя сказанное Котом Бегемотом ©) сохранять через BlockWrite сохранять для каждой строки сначала её длину, потом содержимое и в соответствующем порядке читать через blockread.


Кот Бегемот   (2002-12-28 17:58:00) [10]

Для такого крутого чувака как ты с таким классным ником:
BlockRead()
BlockWrite()


xyz   (2002-12-28 14:01:00) [11]

MBo,
нужно все реализовать без использования стандартных компонентов... Приложение почти консольное...


MBo   (2002-12-27 06:30:00) [12]

>xyz
TStringList не устроит?


ION T   (2002-12-27 01:36:00) [13]

Да не стрим там не влияет....я щас под шапочкой и без кайликса, посему исходной речи не толкну....ну массив там, выходит, содержит кучу 4байтовых указателей на реальные строки в памяти, так шо если писать то надо циклом обращаться к каждой строке массива причем к первому её елементу....ну нечто типа:

for i:=0 to High(MyArr) do
fileStream.Write(MyArr[i][1], length(MyArr[i]))


xyz   (2002-12-27 01:27:00) [14]

А как это реализвать? я лучше понимаю не русскую речь, а исходный текст :))

а
может быть лучше использовать stearm, а не string? только опять же как это сделать?


ION T   (2002-12-27 01:24:00) [15]

Ну так стримом вы сохраняете массив указателей на строку....да еще и 17ю...


xyz   (2002-12-27 01:10:00) [16]

угу, а Вы попробуйте теперь сохранить такое в файл...
Он просто требует указать сколько строчек в массиве!
TMyfile = record
str : array[0..10] of string;
end;
Вот чего он требует, а мне надо без...


ION T   (2002-12-27 01:02:00) [17]

Не могу понять великого тайного смысла в записи состоящей из аж одного динамического массива динамических строк...


HelloWordAND   (2002-12-27 00:56:00) [18]

Незнаю, у меня никаких проблем, даже не "тявкнул". Может ты Type впереди не поставил?


Наверх

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