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

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

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

> Проблема с записью в файл
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Нужно написать небольшую тему, типа вот этого : http://forum.pascal.net.ru/forum/index.php?showtopic=3845

C записью в массив все отлично! а вот с файлом проблемма, мы не изучали еще, вот даже на простом примере не получается, файл создается, но он пустой!, покажите на этом примере в чем ошибка :

Код
uses crt;
type
   person=record
   name : string;
          end;

var     p : person;
  file_p : file of person;

Begin
  clrscr;
  assign(file_p,'file_p.dat');
  rewrite(file_p);
  with p do
   begin
      writeln('name=');
      readln(p.name);
      close(file_p);
   end;
readln;
end.


Спасибо.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


С записью разобрался, теперь проблемы со чтением sad.gif((

FAQ читал, просмотрел множество задач, но ничего не получается sad.gif

процедура output работает, но не верно, выдает какую-то ерунду,
Допустим ввожу
1) vasa
...

2) dima
...

3) peta
...

А выдает
1) vasa
2) vasa
3) dima
4) dima
5) peta

не могу понять как это все долно быть устроено :fire:

Заранее спасибо.

Код
program DataBase;
uses crt;
const n=30;
type
   STUD=record

          NAME1 : string; {Имя}
          NAME2 : string; {Фамилия}
          NAME3 : string; {Отчество}
          DOB   : string; {Дата рождения}
          HT    : string; {Домашний телефон}
          MT    : string; {Мобильный телефон}
          EMail : string; {E-mail адрес}
          ICQ   : string; {Номер ICQ}

        end;

var
      s : stud;
  i,all : byte;
  studs : array[1..n] of stud;
 EndRec : boolean;
 file_s : file of stud;

{-------------------------------------------------}

procedure search;
var nfind:byte;
   lastname:string;
   SearchPoint:boolean;
Begin
  clrscr;
  writeln('Введите Фамилию для поиска :');
  readln(lastname);
  SearchPoint:=false;
  i:=1;
  nfind:=0;
  while (i<=all)and(not(SearchPoint)) do
   begin
      s:=studs[i];
      with s do
       if name2=lastname then
       begin
           nfind:=i;
           SearchPoint:=True;
        end;
      inc(i);
   end;
   writeln('nfind=',nfind);
end;

{-------------------------------------------------}

procedure output;
Begin
  assign(file_s,'Data.dat');
  reset(file_s);
  i:=1;
  while (not(eof(file_s))) do
   begin
      read(file_s,s);
      with s do
       begin
          writeln(i,'-й студент :');
          write('ФИО : ');writeln(name2,' ',name1,' ',name3);
          write('Дата рождения :');writeln(dob);
          write('Домашний телефон :');writeln(ht);
          write('Мобилный телефон :');writeln(mt);
          write('ICQ : ');writeln(icq);
          write('E-mail :  ');writeln(email);
          writeln;
          inc(i);
       end;
   end;
end;

{-------------------------------------------------}

procedure if_next;
var ch:char;
Begin
  writeln('Будете вводить еще студента [Y/N] ?');
  repeat
   ch:=readkey;
  until (ch in ['Y','y','N','n']);
  clrscr;
  if ch in ['Y','y'] then
   begin
      write(file_s,s);
      inc(i);
      inc(all);
      EndRec:=true;
   end
    else
     begin
        close(file_s);
        exit;
     end;
end;

{--------------------------------------------------}

Begin
  clrscr;
  output;
  {assign(file_s,'Data.dat');
  rewrite(file_s);
  i:=1;
  all:=1;
  EndRec:=true;
  while (i<=n)and(EndRec) do
   with s do
    begin
       writeln('Введите информацию для ',i,'-го студента');
       write('Введите Имя : ');readln(name1);
       write('Введите Фамилию : ');readln(name2);
       write('Введите оочество :');readln(name3);
       writeln('Введите дату рождения');
       readln(DOB);
       writeln('Введите номер домашнего телефона');
       readln(HT);
       writeln('Введите номер мобильного телефона');
       readln(MT);
       writeln('Введите E-mail адрес');
       readln(EMail);
       writeln('Введите номер ICQ');
       readln(ICQ);
       studs[i]:=s;
       write(file_s,s);
       EndRec:=false;
       if_next;
    end;}
End.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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