Работа с базами данных
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
го досье становится достаточно трудоемким занятием.
Оба эти способа я посчитала громоздкими, поэтому все данные на всех людей хранятся у меня в одном файле, разделенные, как уже говорилось соответствующими символами. Достоинства: во многом упрощается работа с файлами (не нужно мучится с их открытием и закрытием). Правда, файл может получиться слишком большим. Других недостатков у своего пути я не вижу.
Несущественные замечания.
Хочу повиниться перед проверяющим: вопреки настоятельной просьбе нашего учителя информатики вместо одной программы я написала две: первая заносит данные в файл, вторая извлекает их оттуда. Не считаю это серьезным недостатком своей работы, так как при желании эти две программы всегда можно объединить. Также хочу заметить, что данная программа далеко несовершенна в отношении оформления, но так как передо мной не стояла задача рисовать красивые картинки, я и не стала этого делать.
Результатом моей работы явились две программы, которые я и привожу в заключение.
Приложение.
Program shit;
uses crt;
var a,s,d:string;
f:text;
n,e,y,q:integer;
begin
assign(f,iz.txt);
{$I-}
reset(f);
if IOResult>0 then
begin
writeln(Файл не найден);
readln;
halt;
end;
{$I+}
(Эта вставка предназначена на тот случай, если файла со списком нет на диске. Тогда программа выдаст сообщение и завершит свою работу, а не просто вылетит.)
writeln(Введите критерий);
readln(a);
writeln(Если это фамилия, введите 1,
имя - 2, пол - 3);
readln(e);
if e=1 then
begin
repeat
readln(f,s);
n:=pos(*,s);
d:=copy(s,1,n-1);
if d=a then
begin
y:=1;
w:=pos(*,s);
r:=pos(&,s);
t:=pos($,s);
s:=copy(s,1,w-1)+ +copy(s,w+1,r-w-1)+пол +s[r+1]+
+copy(s,t+1,length(s)-t-1);
(Этот блок и все последующие блоки такого типа служат для удаления спецсимволов при выводе на экран строки из файла. Вместо спецсимволов на экран выводятся пробелы и некоторые пояснения.)
writeln(s);
end;
until eof(f);
end;
if e=2 then
begin
repeat
readln(f,s);
n:=pos(*,s);
q:=pos(&,s);
d:=copy(s,n+1,q-n-1);
if d=a then
begin
y:=1;
w:=pos(*,s);
r:=pos(&,s);
t:=pos($,s);
s:=copy(s,1,w-1)+ +copy(s,w+1,r-w-1)+ +s[r+1]+
+copy(s,t+1,length(s)-t-1);
writeln(s);
end;
until eof(f);
end;
if e=3 then
begin
if not ((a=м) or (a=ж)) then
begin
writeln(Не выделывайся. Я, конечно знаю парочку гермафродитов,);
writeln(но их нет этом списке. Сто пудов!!!!);
y:=1;
(Проверка на случай не очень умного пользователя.)
end
else
repeat
readln(f,s);
n:=pos(&,s);
if s[n+1]=a[1] then
begin
y:=1;
{ writeln(s);}
w:=pos(*,s);
r:=pos(&,s);
t:=pos($,s);
s:=copy(s,1,w-1)+ +copy(s,w+1,r-w-1)+ +s[r+1]+ +copy(s,t+1,length(s)-t-1);
writeln(s);
end;
until eof(f);
if not ((e=1) or (e=2) or (e=3)) then
begin
writeln(Слушай, делать нечего, вали из моей программы);
y:=2;
(Проверка на случай не очень умного пользователя)
end;
if not (y=1) or (y=2) then
writeln(Таких здесь нет, и, по-моему никогда не было);
end;
readln
end.