Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.02.2010, 11:11
Mixali4 Mixali4 вне форума
Прохожий
 
Регистрация: 06.02.2010
Сообщения: 3
Репутация: 10
По умолчанию В чем лучше хранить

Есть 4 массива, каждый состоит из элементов типа запись, для каждого своя; каждая запись в свою очередь состоит из элементов типа: boolean, integer, TColor, String[10].
Так вот вопрос: в какого типа файле все это удобнее всего хранить? Чтобы при загрузке программы данные загружались, и когда нужно сохранялись.
Пробовал создавать запись, содержащую эти 4 массива, но при большом количестве элементов массива возникает ошибка при записи в типизированный файл
Ответить с цитированием
  #2  
Старый 06.02.2010, 13:36
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Для удобства и скорости доступа, конечно лучше типизированный файл.
Скорее всего вы что-то неправильно делали при сохранении, а ошибок быть не должно при создании типизированного файла, независимо от количества данных.
Код в студию.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 06.02.2010, 15:15
Mixali4 Mixali4 вне форума
Прохожий
 
Регистрация: 06.02.2010
Сообщения: 3
Репутация: 10
По умолчанию

Спасибо, сам думал насчет типизированных файлов.
Разобрался почему не работало, вопрос отпадает

просто делал так:
Код:
......
var f: File of TMGraph;
    g: TMGraph;
begin
 assignfile(f,FilePath.Text);
 rewrite(f);
 write(f,g);
 closefile(f);
end;
.......

хотя данные все писались в глобальную переменную, которую теперь здесь и указал:
Код:
......
var f: File of TMGraph;
begin
 assignfile(f,FilePath.Text);
 rewrite(f);
 write(f,graph);
 closefile(f);
end;
.......
теперь все работает и сохраняет.
Писал куски кода в разные дни, и забыл

тут попутно возник еще вопросик:
как бы эти данные по пути зашифровывать и расшифровывать. Сам алгоритм шифрования знаю, просто не совсем понятно в какой момент производить шифрование и в какой структуре хранить информацию.
В общем то можно создавать файл, потом его открывать чтобы зашифровать, и это содержимое сохранять в файл, а первый - удалять. А еще какой-нибудь способ есть?

Последний раз редактировалось Mixali4, 06.02.2010 в 15:28.
Ответить с цитированием
  #4  
Старый 06.02.2010, 17:43
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Обычно шифрование идет при записи в файл соответственно дешифровка при чтении из файла. Т.е. само приложение работает с нормальными данными.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 06.02.2010, 18:18
Mixali4 Mixali4 вне форума
Прохожий
 
Регистрация: 06.02.2010
Сообщения: 3
Репутация: 10
По умолчанию

ну это понятно.
а вот как бы реализовать запись той же структуры данных в типизированный файл с шифрованием?
Ответить с цитированием
  #6  
Старый 07.02.2010, 12:29
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

К примеру есть 2 Функции вида:
1. function encoder(Text : string):String;//шифратор
2. function decoder(Code : string):String;//дешифратор
Одна из реализаций...
Чтение из файла...читаем дешифруем
Код:
type
 Trec : record;
  rec1 : string;
  rec2 : string;
 end;
...
var
 Rec : Trec;
begin
 assignfile...
 reset...
 read(file, rec);
 closefile...
 with rec do
 begin
  rec1 := decode(rec1);
  rec2 := decode(rec2);
 end;
end;
Запись в файл...шифруем записываем
Код:
type
 Trec : record;
  rec1 : string;
  rec2 : string;
 end;
...
var
 Rec : Trec;
begin
 with rec do
 begin
  rec1 := encode(rec1);
  rec2 := encode(rec2);
 end;
 assignfile...
 rewrite...
 wrile(file, rec);
 closefile...
end;
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter