IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> База данных с помощью записей, подскажите, рационально ли
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской
Реальное имя: Олег

Репутация: -  0  +


Суть такова: написал базу данных, но не могу никак сообразить, возможно ли редактировать в такой БД запись отдельно. Как мне выделить/вычленить любую по желанию запись и, например, удалить только ее или отредактировать? Или лучше использовать для такой БД двумерные массивы?


*Тупанул при написании. Для запуска файла надо в том же каталоге создать файл "database" и указать его имя при запросе в программе.




program students;

uses crt,dos;

label ChangeFile;

type spisok = record
nomer: string[6]; // Порядковый номер
zach: string[7]; // Номер зачетной книжки
fam: string[20]; // Фамилия
imya: string[20]; // Имя
otch: string[20]; //Отчество
gruppa: string[8]; //Номер группы
end;

StudentDataBase = file of spisok;

var a: StudentDataBase;
i, z: integer;
s: real;
c:char;
q:boolean;
DataBase: string;
k:byte;

p:string;
ss:string;

{-------------------------------------------------> INPUT}
procedure new(var a: StudentDataBase);
var j: integer; zk: spisok;
begin
reset(a);
seek(a, filesize(a));
repeat
begin

with zk do begin

writeln;

write('#................: ');
readln(nomer);

write('Зачетная книжка..: ');
readln(zach);

write('Фамилия..........: ');
readln(fam);

write('Имя..............: ');
readln(imya);

write('Отчество.........: ');
Readln(otch);

write('Группа...........: ');
readln(gruppa);

writeln;

write(a, zk);

writeln;
writeln('Продолжить запись? Да: 1 Нет: 0');

readln(j);
end;
end;
until j =0;

close(a);
end;
{-----------------------------------------------> // INPUT}






{-------------------------------------------------> OUTPUT}
procedure output(var a: StudentDataBase);
var i: integer; zk: spisok;
begin
with zk do begin
clrscr;
reset(a);
writeln;
writeln(' База данных "Студенты" ');
writeln;
writeln(& #39;============================================================================
===');
writeln(' № | з/книжка | Фамилия | Имя | Отчество | Группа ');
writeln(& #39;============================================================================
===');

while not eof(a) do

begin
read(a, zk);
write(nomer:6);
write('|', zach: 10);
write('|', fam: 17);
write('|', imya: 13);
write('|', otch: 18);
write('|', gruppa: 8);
writeln;
writeln('-------------------------------------------------------------------------------');

end;
writeln;
writeln(' Нажмите клавишу Enter для перехода в меню...');
close(a);
end;

readln;
end;
{-----------------------------------------------> // OUTPUT}




{------------------------------------------> FIND}

procedure find(var a: StudentDataBase);
var i: integer;
zk: spisok;
student: string;
begin
clrscr;
reset(a);
write('Введите данные для поиска: ');
readln(student);
writeln;
writeln(' База данных "Студенты" ');
writeln;
writeln(& #39;============================================================================
===');
writeln(' № | з/книжка | Фамилия | Имя | Отчество | Группа ');
writeln(& #39;============================================================================
===');


while not eof(a) do
begin
with zk do begin
read(a, zk);
if (zach = student) or (fam=student) or (imya=student) or (otch=student) or (gruppa=student) then
begin
write(nomer:6);
write('|', zach: 10);
write('|', fam: 17);
write('|', imya: 13);
write('|', otch: 18);
write('|', gruppa: 8);
writeln;
writeln('-------------------------------------------------------------------------------');
end;
end;
end;
close(a);
writeln;
writeln(' Нажмите клавишу Enter для перехода в меню...');
readln;
end;

{------------------------------------------> // FIND}






begin
changefile:


{------------------------------------------> LOADING}

clrscr;
write('Укажите имя загружаемой базы: ');
readln(DataBase);
repeat
clrscr;
assign(a, DataBase);
{------------------------------------------> // LOADING} // временно отключил






{-------> MENU}

write('Disk Size: ', DiskSize(0) div 1024 div 1024, ' Мбайт');
writeln;
write('Current File: ', DataBase);
writeln;
writeln('Menu: ');
writeln;
writeln('1: New Record(-s)');
writeln('2: Output Record(-s)');
writeln('3: Find Record(-s)');
writeln('4: Change File | отключил');
writeln('5: Exit');
writeln('6: Delete File');
writeln('7: Add Record(-s) | не работает');
writeln('8: Delete Record(-s) | не работает');
writeln('9: Current Record: | не работает');
readln(z);

case z of
1: new(a);
2: output(a);
3: find(a);
4: goto changefile;
5: q:=true;
6: begin
erase(a);
writeln;
write('File ', Database, ' was deleted');
readln;
end;
end;
until q;
end.



Сообщение отредактировано: hemm -


Прикрепленные файлы
Прикрепленный файл  bd.pas ( 4.8 килобайт ) Кол-во скачиваний: 244
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.05.2024 2:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name