| 
| 
 | Вопрос # 6 231/ вопрос решён / | 
 |  Здравствуйте, эксперты! Подскажите как реализовать в своем файл (либо текстовом файле) таблицы и возможности сортировки в нем . Задание спасибо 
|  |   Вопрос задал: Go6JIuH (статус: Посетитель)Вопрос отправлен: 24 июля 2012, 19:44
 Состояние вопроса: решён, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Толяныч Здравствуйте, Go6JIuH!Из-за жары был на речке, там не то что инету - мобильник не берет.
 
 Так вот. У меня 2 программы : одна заполняет "базу данных"
 http://content.foto.mail.ru/inbox/gaev43/others/i-16.jpg, другая ее анализирует
 
 http://content.foto.mail.ru/inbox/gaev43/others/i-17.jpg    .
 
 "База" в двоичных кодах. Это по сравнению с XML компактнее, но невозможно редактировать текстовым редактором. А может - и к лучшему ? Конечно, не модно, но делалось для себя.  Если нужно именно в текстовом виде - говорят, XML . Я не применял. Но и без него можно :)
 
 Итак , фрагменты программ.
 
 
 unit Unit2a ;
 
type
 
  Reco = record
   CountPlay : shortint ;
   Step : byte;
   Gav6,Comp6 : word;
   GavPerc,CompPerc : array[0..1] of byte ;
   Dt : TDateTime ;
  end ;
 
......................................
var 
  ArRR : array of Reco ;
  RR : Reco ;
  FR : File of Reco ;
......................................
 
procedure TForm1.FormActivate(Sender: TObject);
 
begin
   SetLength (ArRR,24000) ;
end;
 
//-------------------------------------
// Этот обработчик считывает данные в массив - в первой
// программе - для дополнения, во второй - для анализа. 
procedure TForm1.Button1Click(Sender: TObject);
begin
    if FlagF = 0 then
      begin
        AssignFile (FR,'Nardy.dat') ;
        Reset (FR) ;
        LFil := FileSize(FR) ;
        if LFil > 0 then
          begin
            Seek (FR,0) ;
            for i := 0 to LFil-1 do  Read (FR,ArRR[i]) ;
          end ;
        CloseFile (FR) ;
      end ;
 
//-------------------------------------
// Этот обработчик дополняет данные в конец файла из
// записи RR, в которую данные упаковываются из окон ввода.
// Только для первой программы. 
 
procedure Tform1.MPutDat();
begin
   AssignFile (FR,'Nardy.dat') ;
   Reset (FR) ;
   LFil := FileSize(FR) ;
   Seek(FR,LFil) ;
   Write (FR,RR) ;
   CloseFile (FR) ;
end;
|  | Ответ отправил: Толяныч (статус: 4-ый класс)Время отправки: 8 августа 2012, 14:20
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 12; последнее сообщение — 8 августа 2012, 14:28; участников в обсуждении: 5. 
|   | Go6JIuH (статус: Посетитель), 24 июля 2012, 19:46 [#1]:Заранее *   |  
|   | Егор (статус: 10-ый класс), 24 июля 2012, 20:21 [#2]:а чем не устраивают готовые компоненты для работы с базами данных? там и сортировка, и фильтрация, и безопасность, и ... до фига всего. и работать удобно
 Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | Go6JIuH (статус: Посетитель), 24 июля 2012, 22:37 [#3]:проблема в транспортабельностью программы , не на всех копах стоит SQL или аналогичные ему платформы взаимодействующие с БД . И нету смысла ставить их на эти компы . А БД нужна для небольших изменений К примеру Вася Пупкин пришел тогда то а ушел тогда то .
 |  
|   | Егор (статус: 10-ый класс), 25 июля 2012, 04:34 [#4]:а ms access? на любом компе с виндой есть возможность работать с этой бд. даже если сама субд access не установлена. или разрабатывается кроссплатформенное приложение? чтобы и под винду, и под линукс, макос, андроид...
   Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | min@y™ (статус: Доктор наук), 25 июля 2012, 08:08 [#5]:Формат CSV не подойдёт? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | DNK (статус: Студент), 25 июля 2012, 13:34 [#6]:А SQLite? С программой дополнительно нужно таскать только одну dll. "Digital Networked Knight" |  
|   | Go6JIuH (статус: Посетитель), 25 июля 2012, 20:20 [#7]:в принципе Формат CSV и  SQLite подойдут просто мне хочется научится создавать такие небольшие бд на основе файла |  
|   | Егор (статус: 10-ый класс), 26 июля 2012, 18:39 [#8]:ну, уже хороший ответ  
 размер записей каков? может, проще всю базу в памяти хранить, а при выходе - сохранять?
 Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.— Donald E. Knuth.
 |  
|   | min@y™ (статус: Доктор наук), 27 июля 2012, 08:14 [#9]:Кстати если записи будут достаточно простые и общее количество их небольшое, то можно смело юзать XML. И, таки да, хранить в памяти. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Толяныч (статус: 4-ый класс), 27 июля 2012, 11:48 [#10]:Я никогда не занимался базами данных, и когда решил от не фиг делать вести статистику моих игр с компутером в нарды, чтоб доказать ему, что я играю лучше ( самому-то мне и без того ясно ), организовал что-то вроде БД. Определил запись ( структуру по Си-шному ), в программе завел массив этих записей  и типизированный файл этих самых записей. В начале считываю этот файл в массив, по ходу игры заполняю соответствующие окошки, формируется запись и добавляется в конец файла. Если нужна сортировка, это делается в массиве записей крайне просто, и скидывается в файл уже отсортированный массив. Без всяких SQL, Асексов и пр. Все из-за моей мерзкой привычки решать простые задачи простыми средствами и не завозить гаубицы для отпугивания воробьев. Ретроград я. Если надо, фрагмент выложу.
 Для сортировки я применяю свой любимый "метод пузырька" ( не стоит усматривать в нем гастрономический намек ), который я малость модифицировал.
 |  
|   | Go6JIuH (статус: Посетитель), 2 августа 2012, 10:23 [#11]:Спасибо было бы неплохо |  8 августа 2012, 14:25: Статус вопроса изменён на решённый (изменил автор вопроса — Go6JIuH) 
|   | Go6JIuH (статус: Посетитель), 8 августа 2012, 14:28 [#12]:Благодарю Толяныч , это именно то что и нужно было . Огромное спасибо  буду развиваться и дальше |  11 октября 2012, 21:22: Вопрос перемещён из тематического раздела Delphi » Программирование баз данных (БД) в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |