Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение записи в файл, PS: массив из записей 
V
    Опции темы
6Apokali6sis6
Дата 21.3.2006, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.12.2005

Репутация: нет
Всего: нет



 Вот разобрался как массив сохранять в файл, а вот массив из записей не вохраняется.
Код

assignfile(t,'d:\SOXR.txt');
reset(t);
for i:=1 to nomer do
readln(t,massiv[i]);
closefile(t);

На месте readln(t,massiv[i]);
пишет Illegal type in REad\Readln statment.  Я так полагаю, что проблема в том что сохраняется массив из записей. Как быть?  

Это сообщение отредактировал(а) Girder - 23.4.2006, 15:56
PM MAIL   Вверх
_hunter
Дата 21.3.2006, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



ты сохранить или прочитать пытаешся?
если сохранить -- WriteLn нужно...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Демо
Дата 21.3.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



6Apokali6sis6,
Приведи код структуры(record)


--------------------
    
PM MAIL ICQ Skype   Вверх
Guedda
Дата 21.3.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Типизированные файлы в Дельфи читать нужно не ReadLn, а Read. А писать не Writeln, а Write. В остальных случаях будет выскакивать эта ошибка.
Добавлено @ 19:56
Просто Read используй. Получится примерно следующее:
Код

assignfile(t,'d:\SOXR.txt');
reset(t);
for i:=1 to nomer do
read(t,massiv[i]);
closefile(t);



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
6Apokali6sis6
Дата 21.3.2006, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.12.2005

Репутация: нет
Всего: нет



Э нее, ошибка всё-равно выскакивает. А Ридельн или райтельн всё-равно, я понимаю, что ридельн для чтения, а райтельн для записи.
PM MAIL   Вверх
darkart
Дата 21.3.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: нет
Всего: 31



Что-то мне подсказывает, что у тебя файл не типизированный а текстовый. t какого типа? textfile?
t должен быть file of "тип твоей записи" и читать/писать действительно надо read/write.

Это сообщение отредактировал(а) darkart - 21.3.2006, 20:56
PM MAIL WWW ICQ Skype GTalk   Вверх
6Apokali6sis6
Дата 21.3.2006, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 21.12.2005

Репутация: нет
Всего: нет



Благодарю. Разобрался.
PM MAIL   Вверх
Sven47
Дата 22.4.2006, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 22.4.2006
Где: Украина/Киев

Репутация: нет
Всего: нет



вот код части проги :
Код

type
  rec=record
    Coll : integer;
    hard : integer;
    tcoll : integer;
    thard : integer;
    data : string;
  end;

var
f : file of rec;


при компиляции делфи выдает
Цитата

[Error] Project1.dpr(20): Type 'rec' needs finalization - not allowed in file type
 

что ето означает, и как мне зделать фаил типа запись

 Спасибо за помощь 
PM MAIL ICQ   Вверх
Yanis
Дата 22.4.2006, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



А как ты собрался сохранять в файле динамические строки? Если бы так можно было, как ты хочешь, многие мои и не только мои проблемы были бы решены smile Просто поле data должно быть фиксированой длины. Например:
Код

data : string[255];
  

Это сообщение отредактировал(а) Yanis - 22.4.2006, 02:25


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
СЭНСЭЙ
Дата 13.6.2014, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Неужели за столько времени никто не нашел какое нибудь универсальное решение для
записи файлов типа записи с динамическими массивами?
PM MAIL   Вверх
CynicRus
Дата 15.6.2014, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 31.5.2012

Репутация: нет
Всего: 5



Цитата(СЭНСЭЙ @ 13.6.2014,  21:12)
Неужели за столько времени никто не нашел какое нибудь универсальное решение для
записи файлов типа записи с динамическими массивами?

Странные люди. Зачем вам паскалевые извращения? БЕрёте TFileStream. И пишете:

Код

var
 fs:TFileStream;
 n:integer;
begin
  fs:=TFileStream.Create(afile, fmCreate);
try
  fs.Position := 0;
  n := Length(arr);
  fs.WriteBuffer(n, sizeof(integer));
  fs.WriteBuffer(arr, n);
finally
  fs.Free;
end;
end;

Первым байтом можно записать размер своего массива, чтобы потом - прочитать сначала размер, а потом кусок данных нужного размера.

Код

 var
  fs:TFileStream;
  Size : Integer;
begin
 fs:=TFilestream.Create(afile,fmOpenRead);
  try
   fs.Seek(0,soFromBeginning);
   fs.ReadBuffer(size, SeizeOf(integer));
   fs.ReadBuffer(arr,size);
  finally
    fs.Free;
  end;
end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0811 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.