Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
ВнизДинамический массив для структуры файла... Найти похожие ветки
← →
xyz (2002-12-27 00:48) [0]TMyfile = record
str : array of string;
end;
Это нельзя, а хочется...
Может быть кто-нибудь подскажет?
← →
HelloWordAND (2002-12-27 00:56) [1]Незнаю, у меня никаких проблем, даже не "тявкнул". Может ты Type впереди не поставил?
← →
ION T (2002-12-27 01:02) [2]Не могу понять великого тайного смысла в записи состоящей из аж одного динамического массива динамических строк...
← →
xyz (2002-12-27 01:10) [3]угу, а Вы попробуйте теперь сохранить такое в файл...
Он просто требует указать сколько строчек в массиве!
TMyfile = record
str : array[0..10] of string;
end;
Вот чего он требует, а мне надо без...
← →
ION T (2002-12-27 01:24) [4]Ну так стримом вы сохраняете массив указателей на строку....да еще и 17ю...
← →
xyz (2002-12-27 01:27) [5]А как это реализвать? я лучше понимаю не русскую речь, а исходный текст :))
а
может быть лучше использовать stearm, а не string? только опять же как это сделать?
← →
ION T (2002-12-27 01:36) [6]Да не стрим там не влияет....я щас под шапочкой и без кайликса, посему исходной речи не толкну....ну массив там, выходит, содержит кучу 4байтовых указателей на реальные строки в памяти, так шо если писать то надо циклом обращаться к каждой строке массива причем к первому её елементу....ну нечто типа:
for i:=0 to High(MyArr) do
fileStream.Write(MyArr[i][1], length(MyArr[i]))
← →
MBo (2002-12-27 06:30) [7]>xyz
TStringList не устроит?
← →
xyz (2002-12-28 14:01) [8]MBo,
нужно все реализовать без использования стандартных компонентов... Приложение почти консольное...
← →
Кот Бегемот (2002-12-28 17:58) [9]Для такого крутого чувака как ты с таким классным ником:
BlockRead()
BlockWrite()
← →
PVOzerski (2002-12-28 20:26) [10]Либо (если 255 символов на строку хватит), пользоваться shorstring, либо массивами of char, опять же фиксированной длины, либо (расширяя сказанное Котом Бегемотом ©) сохранять через BlockWrite сохранять для каждой строки сначала её длину, потом содержимое и в соответствующем порядке читать через blockread.
← →
Кот Бегемот (2002-12-28 21:23) [11]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 должно работать :)))
← →
Кот Бегемот (2002-12-28 21:29) [12]Хотя в этом случае наверно лучше использовать не
record
аpacked record
- хотя не уверен - что будет если в в записи будет несколько полей - как там с выравниванием на границу слова будет работать ???
← →
PVOzerski (2002-12-28 22:09) [13]2Кот Бегемот ©:
Вы будете смеяться, но sizeof(mypunyfile), независимо от packed, будет всегда равным 4, и mypunyfile будет содержать указатель на массив, т.е. будет иметь смысл лишь до окончания работы программы.
← →
Kotka (2002-12-29 01:12) [14]Я вот только одного не пойму: нафиг корячиться со всякими
record
иblockwrite
, если можно писать, как в обычный текстовый файл, или xyz pretty fly for that?
← →
Danlicha (2002-12-29 01:42) [15]Имхо проще, если только строчи писать надо, пользоваться PChar-ом.
← →
xyz (2002-12-29 18:48) [16]Текстовый файл - неприемлимо!
Он слишком долго работает и там нет великой и непобедимой команды seek();
Вот если бы текстовый файл с командой seek(); ...//размечтался
← →
Sha (2002-12-29 21:26) [17]xyz © (29.12.02 18:48)
Допустим, у тебя есть реализация того, что ты хочешь.
Ты пробовал дальше думать. Как, например будешь позиционироваться, передвигаться на следующую/предыдущую.
У меня были похожие проблемы. Не морочься. Используй BlockRead.
← →
xyz (2002-12-30 01:01) [18]Sha ©
Как перемещаться?
+ или - 1
Кроме того, специфика файла будет такова, что в каждой записи будет ссылка на другую запись(это обязательное условие).
Возможно кто-то уже догадался, что я пытаюсь реализовать семантические сети с нуля.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c