Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
1-37145
perov
2002-12-26 07:37
2003.01.13
полная загрузка компонента


6-37252
_ol_
2002-11-06 17:11
2003.01.13
Всего лишь написать telnet...


7-37407
Slatazan
2002-11-02 03:57
2003.01.13
string to bytes


4-37435
exchoper
2002-11-22 14:16
2003.01.13
пароль текущего пользователя


1-37201
DieHard
2002-12-30 14:50
2003.01.13
Объявление типов в Delphi и C Builder





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский