Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 231

/ вопрос решён /

Здравствуйте, эксперты! Подскажите как реализовать в своем файл (либо текстовом файле) таблицы и возможности сортировки в нем . Задание спасибо

Go6JIuH Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: 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

Go6JIuH (статус: Посетитель), 24 июля 2012, 19:46 [#1]:

Заранее * :-D
Егор

Егор (статус: 10-ый класс), 24 июля 2012, 20:21 [#2]:

а чем не устраивают готовые компоненты для работы с базами данных? там и сортировка, и фильтрация, и безопасность, и ...
до фига всего. и работать удобно
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
Go6JIuH

Go6JIuH (статус: Посетитель), 24 июля 2012, 22:37 [#3]:

проблема в транспортабельностью программы , не на всех копах стоит SQL или аналогичные ему платформы взаимодействующие с БД . И нету смысла ставить их на эти компы . А БД нужна для небольших изменений
К примеру Вася Пупкин пришел тогда то а ушел тогда то .
Егор

Егор (статус: 10-ый класс), 25 июля 2012, 04:34 [#4]:

а ms access? на любом компе с виндой есть возможность работать с этой бд. даже если сама субд access не установлена.
или разрабатывается кроссплатформенное приложение? чтобы и под винду, и под линукс, макос, андроид... :)
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
min@y™

min@y™ (статус: Доктор наук), 25 июля 2012, 08:08 [#5]:

Формат CSV не подойдёт?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
DNK

DNK (статус: Студент), 25 июля 2012, 13:34 [#6]:

А SQLite? С программой дополнительно нужно таскать только одну dll.
"Digital Networked Knight"
Go6JIuH

Go6JIuH (статус: Посетитель), 25 июля 2012, 20:20 [#7]:

в принципе Формат CSV и SQLite подойдут просто мне хочется научится создавать такие небольшие бд на основе файла
Егор

Егор (статус: 10-ый класс), 26 июля 2012, 18:39 [#8]:

ну, уже хороший ответ :)

размер записей каков? может, проще всю базу в памяти хранить, а при выходе - сохранять?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
min@y™

min@y™ (статус: Доктор наук), 27 июля 2012, 08:14 [#9]:

Кстати если записи будут достаточно простые и общее количество их небольшое, то можно смело юзать XML. И, таки да, хранить в памяти.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 27 июля 2012, 11:48 [#10]:

Я никогда не занимался базами данных, и когда решил от не фиг делать вести статистику моих игр с компутером в нарды, чтоб доказать ему, что я играю лучше ( самому-то мне и без того ясно ), организовал что-то вроде БД. Определил запись ( структуру по Си-шному ), в программе завел массив этих записей и типизированный файл этих самых записей. В начале считываю этот файл в массив, по ходу игры заполняю соответствующие окошки, формируется запись и добавляется в конец файла. Если нужна сортировка, это делается в массиве записей крайне просто, и скидывается в файл уже отсортированный массив. Без всяких SQL, Асексов и пр. Все из-за моей мерзкой привычки решать простые задачи простыми средствами и не завозить гаубицы для отпугивания воробьев. Ретроград я.
Если надо, фрагмент выложу.
Для сортировки я применяю свой любимый "метод пузырька" ( не стоит усматривать в нем гастрономический намек ), который я малость модифицировал.
Go6JIuH

Go6JIuH (статус: Посетитель), 2 августа 2012, 10:23 [#11]:

Спасибо было бы неплохо

8 августа 2012, 14:25: Статус вопроса изменён на решённый (изменил автор вопроса — Go6JIuH)

Go6JIuH

Go6JIuH (статус: Посетитель), 8 августа 2012, 14:28 [#12]:

Благодарю Толяныч , это именно то что и нужно было . Огромное спасибо буду развиваться и дальше

11 октября 2012, 21:22: Вопрос перемещён из тематического раздела Delphi » Программирование баз данных (БД) в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:38
Выполнено за 0.03 сек.