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

Вниз

Типизированые файлы:   Найти похожие ветки 

 
Луарвик   (2004-08-26 14:44) [0]

Вот объявляю тип:
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...


 
clickmaker ©   (2004-08-26 14:46) [1]


>  fc.vars.Text:="2";

а где создание fc?
и вообще, не очень понятно, зачем записывать в файл адрес стринглиста. Ведь при последующем чтении он может уже и не иметь смысла


 
Семен Сорокин ©   (2004-08-26 14:48) [2]

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.


 
Луарвик   (2004-08-26 14:51) [3]

Мда? А как тогда ваще можно записать данные a файл???


 
clickmaker ©   (2004-08-26 14:52) [4]

а кто тебе мешает объявить vars как array of char ?


 
Гаврила ©   (2004-08-26 14:53) [5]

НУ например руками записать...
Например TFileStream попользовать
вариантов много


 
Семен Сорокин ©   (2004-08-26 14:53) [6]

ftemp = record
  vars: TStrings;
  Desk: array [1..255] of char;
end;


у тебя одни символы и строки, используй либо TStringList, либо TStringStream - там есть встроенные методы: LoadFromFile, SaveToFile


 
Луарвик   (2004-08-26 14:58) [7]

На счет [4], мне обязательно надо, чтоб был список строк.
[6]: Только что попробовал TStringList - та же ошибка.


 
clickmaker ©   (2004-08-26 15:03) [8]


> Только что попробовал TStringList - та же ошибка

как пробовал?


 
Семен Сорокин ©   (2004-08-26 15:04) [9]


> Луарвик   (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


 
Луарвик   (2004-08-26 15:07) [10]

Да нет, же мне надо чтоб файл состоял из записей, в каждой один список строк, и одна строка.
А TStringList пробовал использовать как тот самый список строк в файле...


 
Семен Сорокин ©   (2004-08-26 15:10) [11]


> Луарвик   (26.08.04 15:07) [10]
> Да нет, же мне надо чтоб файл состоял из записей, в каждой
> один список строк, и одна строка.
> А TStringList пробовал использовать как тот самый список
> строк в файле...


и на елку залезть, и ж..у не ободрать (с) пословица.

пиши свой класс, тебе для каждой записи надо будет хранить кол-во символов твоей строки (списка строк)... Удачи.


 
Гаврила ©   (2004-08-26 15:11) [12]

Берем TFileStream, пишем
количество записей (integer)
далее в цикле
 длину стринглиста
 сам стринглист (vars.Text)
 Длину отдельной строки(integer)
 Саму отдельную строку

читаем из файла аналогично


 
Суслик ©   (2004-08-26 15:16) [13]

да...
время идет
люди не меняются
книги и примеры кода коих масса так и не научились читать :(


 
Луарвик   (2004-08-26 15:18) [14]

Короче, слишком уж сложно :)
Буду ini юзать!



Страницы: 1 вся ветка

Текущий архив: 2004.09.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
1-1093886097
hamster
2004-08-30 21:14
2004.09.12
asm


3-1092729831
Wolfram
2004-08-17 12:03
2004.09.12
Непонятный глюк с ADO.


1-1093871349
Erik1
2004-08-30 17:09
2004.09.12
Как изменить во время (Pause, Resume) TimeOut сервиса?


14-1091046073
Сергей Суровцев
2004-07-29 00:21
2004.09.12
И снова о вечном...


4-1091186612
Lukin
2004-07-30 15:23
2004.09.12
Рисование курсора мыши в произвольном месте