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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
4-37426
Valeriy
2002-11-23 21:50
2003.01.13
активные окна


1-37138
Yurko
2002-12-29 03:22
2003.01.13
IconChange


1-37135
BurZhuy
2002-12-29 12:03
2003.01.13
Описание перевода строки в String


1-37051
Brat-2
2003-01-02 21:34
2003.01.13
Str2Byte


14-37375
AL2002
2002-12-25 13:18
2003.01.13
Мама капризничает?