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

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

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

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


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

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

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


Нужно написать небольшую тему, типа вот этого : http://forum.pascalnet.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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 28.01.2005 19:47
Сообщение #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

 



- Текстовая версия 20.07.2025 13:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"