Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2012, 00:38   #1
blackart
 
Регистрация: 26.11.2012
Сообщений: 3
По умолчанию база данных паскаль

Нужно написать базу данных, что бы принимала\показывала студента по нескольких столбцам.
Завтыкал, база принимает только 1го студента, при вводе второго 1й удаляется и второй на его место записывается. С выводом, наверное, тоже косяк, посмотрите\исправьте меня пожалуйста.


Код:
uses crt;
type bada=record
IMA,FAM,GRYP,NZAL,klab,rait:string;
end;
procedure p1;
var as: text;
a:bada;
begin
assign(as,'bada.txt');
append(as);
writeln('Vvod stydenta');
writeln('VVod imeni: ');
readln(a.ima);
writeln('familii: ');
readln(a.fam);
writeln('gryppu: ');
readln(a.gryp);
writeln('nomera zalikovoi knuggu: ');
readln(a.nzal);
writeln('kol-va zdanux lab: ');
readln(a.klab);
writeln('raitinga: ');
readln(a.rait);
writeln(a.ima,' ',a.fam,' ',a.gryp,' ',a.nzal,' ',a.klab,' ',a.rait,' ');
close(as);
end;

procedure p2;
var as:text;
a:bada;
begin
assign(as,'bada.txt');
append(as);
writeln(a.ima,' ',a.fam,' ',a.gryp,' ',a.nzal,' ',a.klab,' ',a.rait);
close(as);
end;

var m:integer;
   begin
   clrscr;
   repeat
   writeln('M E N U : ');
   writeln('1 - регистрация студента.');
   writeln('2 - вывод студентов.')
 writeln('0 - exit.');
   write('Vyberite optiu menu: ');
   readln(m);
   case m of
   1:p1;
   2:р2
   0:
   else writeln('Vy vybrali nevernuiu optiu!');
   end;
   until m=0;
   end.
blackart вне форума Ответить с цитированием
Старый 26.11.2012, 07:46   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Используйте вместо текстовых файлов типизированные:

Код:
var as: file of bada;
Запись в файл:

Код:
Assign(as,'bada.txt');
Reset(as);              {По хорошему - в этом месте лучше использовать проверку сцществования файла, чтобы знать, юзать Rewrite или Reset. 
Данный код подходит ТОЛЬКО при условии, что файл на диске уже есть}

... {Вместо многоточий - процедура ввода}

Write(as,a);
И вывод на экран

Код:
While not eof(as) do begin
  Read(as,a);
  
  ...  {Здесь уже Ваш вывод}

end;
P.S. Есть еще такая штука, как WITH, которая позволяет записать вот такой код:

Код:
With a do begin
  writeln('VVod imeni: ');
  readln(ima);
  writeln('familii: ');
  readln(fam);
  writeln('gryppu: ');
  readln(gryp);
  writeln('nomera zalikovoi knuggu: ');
  readln(nzal);
  writeln('kol-va zdanux lab: ');
  readln(klab);
  writeln('raitinga: ');
  readln(rait);
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 27.11.2012, 01:01   #3
isqoff
Пользователь
 
Регистрация: 31.05.2010
Сообщений: 12
По умолчанию

не видно ни записи в файл ни вывода из файла
Пример записи в файл:
Код:
var f:Text;
Begin
    if FileExists('f:/base.txt')
       then begin
              Assign(f,'f:/base.txt');
              Append(f);
              write(f,'Zapiska');
              Close(f);
            end
        else begin
                Assign(f,'f:/base.txt');
                Rewrite(f);
                write(f,'Zapiska');
                Close(f);
             end;
            
End.
isqoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль,База данных. Gortxayer Помощь студентам 11 28.07.2013 19:46
База данных, турбо паскаль Kries Помощь студентам 2 27.04.2012 19:44
Небольшая база в Open Office База данных. sashaman Фриланс 3 11.04.2010 20:13
База данных и паскаль Dimati87 Паскаль, Turbo Pascal, PascalABC.NET 1 30.04.2009 07:01