Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2008, 07:33   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Вопрос Запись и чтение файла...

Привет всем!
Вот у меня проблема:
Есть
Код:
fTesting = record
   v1, v2, v3, v4, v5: string; v6, v7, v8, v9, v10: boolean;
   v11, v12, v13, v14, v15: byte;
   end;

testing: array of fTesting;
В ходе работы проги значания меняйться и всё OK. Короче, как мне записать testing в файл, а потом прочитать его?

Делаю так:
Код:
function loadList: boolean;
var
f: file;
f_way: string;
begin
   result := false;
   f_way := extractFilePath(application.ExeName)+'_work\file';
   if not fileExists(f_way) then exit;
   assignFile(f, f_way);
   reset(f);
   blockRead(f, testing, 1);
   closeFile(f);
   result := true;
end;

procedure saveList: boolean;
var
f: file;
begin
   assignFile(f, extractFilePath(application.ExeName)+'_work\file');
   reWrite(f);
   blockWrite(f, testing, 1);
   closeFile(f);
end;
После записи появляеться файл, размером 128 байт. После чтения ничего не происходит, но когда добавляю новую запись в масив происходит ошибка...
Код:
setLength(testing, high(testing));
Может перед чтением надо установить размер динамического масива?

Помогите плиз...
Altera вне форума Ответить с цитированием
Старый 06.05.2008, 08:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

хм. тут два выхода:
1 - образмерить строки (всмысле: v1, v2, v3, v4, v5: string[255]
2 - Кажый элемент записи писать в файл отдельно, и файл пусть будет нетипированный.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2008, 08:31   #3
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

И кроме того, в reset и rewrite нужно передавать размер записи.
B_N вне форума Ответить с цитированием
Старый 06.05.2008, 19:36   #4
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
хм. тут два выхода:
1 - образмерить строки (всмысле: v1, v2, v3, v4, v5: string[255]
2 - Кажый элемент записи писать в файл отдельно, и файл пусть будет нетипированный.
А больше 255 никак?

Цитата:
Сообщение от B_N Посмотреть сообщение
И кроме того, в reset и rewrite нужно передавать размер записи.
sizeOf(testing)?
Altera вне форума Ответить с цитированием
Старый 06.05.2008, 20:19   #5
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Сделал через ini файл... Пашет
Altera вне форума Ответить с цитированием
Старый 06.05.2008, 20:22   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,239
Сообщение

Например:
Код:
type TMasStr = array[0..255] of string[255];
Только вырастит объём файла.
Код:
fTesting = record  
   v1, v2, v3, v4, v5: TMasStr;
   v6, v7, v8, v9, v10: boolean;   
   v11, v12, v13, v14, v15: byte;   
   end;
И при чтении в массив, после того как прочитали запись увеличивайте длину на один.
Код:
.................................
setlength(testing, length(testing)+1);
.................................
.

Последний раз редактировалось Alter; 06.05.2008 в 20:25.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в файл и чтение из него. Swool Общие вопросы C/C++ 8 26.08.2008 16:39
Проекция файла и запись/чтение объектов класса в C++ sd13 Помощь студентам 26 25.05.2008 12:05
Запись и чтение сообщений Altera Работа с сетью в Delphi 6 13.04.2008 03:31