![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Типизированые файлы: [D7]
Луарвик © (2004-08-26 14:44:00)Вот объявляю тип:
type
ftemp = record
vars: TStrings;
Desk: array [1..255] of char;
end;
Далее пытаюсь записать в тип. файл:
procedure TForm1.Button2Click(Sender: TObject);
var
f: file of ftemp;
fc: ftemp;
begin
AssignFile(f, 'FirstTempFile.aff');
rewrite(f);
fc.Desk[1]:='M';
fc.vars.Text:='2';
write(f, fc);
CloseFile(f);
end;
Получаю вот это:
Access violation at address...
Луарвик (2004-08-26 15:18:00) [1]Короче, слишком уж сложно :)
Буду ini юзать!
Суслик (2004-08-26 15:16:00) [2]да...
время идет
люди не меняются
книги и примеры кода коих масса так и не научились читать :(
Гаврила (2004-08-26 15:11:00) [3]Берем TFileStream, пишем
количество записей (integer)
далее в цикле
длину стринглиста
сам стринглист (vars.Text)
Длину отдельной строки(integer)
Саму отдельную строку
читаем из файла аналогично
Семен Сорокин (2004-08-26 15:10:00) [4]
> Луарвик (26.08.04 15:07) [10]
> Да нет, же мне надо чтоб файл состоял из записей, в каждой
> один список строк, и одна строка.
> А TStringList пробовал использовать как тот самый список
> строк в файле...
и на елку залезть, и ж..у не ободрать (с) пословица.
пиши свой класс, тебе для каждой записи надо будет хранить кол-во символов твоей строки (списка строк)... Удачи.
Луарвик (2004-08-26 15:07:00) [5]Да нет, же мне надо чтоб файл состоял из записей, в каждой один список строк, и одна строка.
А TStringList пробовал использовать как тот самый список строк в файле...
Семен Сорокин (2004-08-26 15:04:00) [6]
> Луарвик (26.08.04 14:58) [7]
> [6]: Только что попробовал TStringList - та же ошибка.
странно у меня работает, может не так пробуешь?
with TStringList.Create do
try
Add('1');
Add('2');
Add('3');
SaveToFile('C:\myFile.txt')
finally
Free
end
clickmaker (2004-08-26 15:03:00) [7]
> Только что попробовал TStringList - та же ошибка
как пробовал?
Луарвик (2004-08-26 14:58:00) [8]На счет [4], мне обязательно надо, чтоб был список строк.
[6]: Только что попробовал TStringList - та же ошибка.
Гаврила (2004-08-26 14:53:00) [9]НУ например руками записать...
Например TFileStream попользовать
вариантов много
Семен Сорокин (2004-08-26 14:53:00) [10]ftemp = record
vars: TStrings;
Desk: array [1..255] of char;
end;
у тебя одни символы и строки, используй либо TStringList, либо TStringStream - там есть встроенные методы: LoadFromFile, SaveToFile
clickmaker (2004-08-26 14:52:00) [11]а кто тебе мешает объявить vars как array of char ?
Луарвик (2004-08-26 14:51:00) [12]Мда? А как тогда ваще можно записать данные a файл???
Семен Сорокин (2004-08-26 14:48:00) [13]To declare a file type, use the syntax
type fileTypeName = file of type
where fileTypeName is any valid identifier and type is a fixed-size type. Pointer types--whether implicit or explicit--are not allowed, so a file cannot contain dynamic arrays, long strings, classes, objects, pointers, variants, other files, or structured types that contain any of these.
clickmaker (2004-08-26 14:46:00) [14]
> fc.vars.Text:='2';
а где создание fc?
и вообще, не очень понятно, зачем записывать в файл адресстринглиста. Ведь при последующем чтении он может уже и не иметь смысла