|
Вопрос # 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 » Алгоритмы, преобразования модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|