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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 13:00   #1
tgig
Пользователь
 
Регистрация: 09.06.2009
Сообщений: 10
По умолчанию перегонять информацию из типизированного в текстовый и обратно из текстового в типизированный

Нужно: создать меню по которому можно: 1) создавать типизрованный файл; 2) добавлять записи; 3) читать информацию из типизированного; 4) читать из текстового; 5) перегонять информацию из типизированного в текстовый; 6) и обратно из текстового в типизированный! Помогите плизз!!! Вот что у меня есть:
Код:
Uses crt;
type
    gurnal=record
                fam:string;
                Ocen:byte;
           end;
var
   f:file of gurnal;
   x:gurnal;
   f1:text;
   m:integer;
   ch:char;
Procedure dobav;
begin
      assign(f,'tan.dat');
      reset(f);
      seek(f,filesize(f));
      with x do
        repeat
             write('vvedite fam');
             readln(fam);
             write('vvedite ocenku');
             readln(ocen);
             write(f,x);
             write('prodolgit vvod?');
             readln(ch);
        until ch='n';
      close(f);
end;
procedure write_dat;
begin
          assign(f,'tan.dat');
          rewrite(f);
          assign(f1,'tan.txt');
          reset(f1);
          while not eof(f1) do
          begin
               with x do
                    begin
                         readln(f1,fam);
                         readln(f1,ocen);
                    end;
               write(f,x);
          end;
          close(f);
          close(f1);
          writeln('file zapisan v dat');
end;
Procedure write_txt;
Begin
     assign(f1,'tan.txt');
     rewrite(f1);
     assign(f,'tan.dat');
     reset(f);
     while not eof(f) do
           begin
                with x do
                     begin
                          read(f,x);
                          write(f1,x.fam);
                          write(f1,x.ocen);
                          writeln(f1);
                     end;
           end;
     close(f1);
     close(f);
     writeln('file to txt');
end;
Procedure read_dat;
begin
     assign(f,'tan.dat');
     reset(f);
     with x do
     repeat
           read(f,x);
           writeln('familiya:',fam);
           write('ocenka:',ocen);
     until eof(f);
     close(f);
     writeln('tip file was read');
end;
Procedure read_txt;
Begin
     assign(f1,'tan.txt');
     reset(f1);
     while not eof(f1) do
        begin
          with x do
               begin
                    readln(f1,fam);
                    readln(f1,Ocen);
               end;
        end;
     close(f1);
     writeln('txt file was read');
end;
procedure sozd;
begin
     assign(f,'tan.dat');
     rewrite(f);
     with x do begin
     write('vvedite famil:');
     readln(fam);
     write('vvedite ocenku:');
     readln(ocen);
     end;
     write(f,x);
     close(f);
     writeln('file sozdan');
end;
begin
      repeat
           clrscr;
           writeln('1 - exit');
           writeln('2 - cozd file');
           writeln('3 - dobav zap');
           writeln('4 - 4tenie tip faila');
           writeln('5 - zapis v text');
           writeln('6 - 4tenie txt');
           writeln('7 - zapis v tipiz');
           write('vash vibor: ');
           readln(m);
           case m of
                1: exit;
                2: sozd;
                3: dobav;
                4: read_dat;
                5: write_txt;
                6: read_txt;
                7: write_dat;
               end;
     until false;
     readkey;
end.

Последний раз редактировалось Stilet; 09.06.2009 в 13:31.
tgig вне форума Ответить с цитированием
Старый 09.06.2009, 13:28   #2
danekne
Форумчанин
 
Регистрация: 12.02.2007
Сообщений: 360
По умолчанию

Ты в процедуру данные не вводишь и не выводишь - ес-но они ничего в основную прогу передавать не будут
danekne вне форума Ответить с цитированием
Старый 09.06.2009, 13:50   #3
tgig
Пользователь
 
Регистрация: 09.06.2009
Сообщений: 10
По умолчанию

почему же, все ввожу...когда запускаю...и все вроде бы получается,но мне не выдает допустим запись :"file sozdan" или " file zapisan v dat"...и я не пойму в чем дело..((
tgig вне форума Ответить с цитированием
Старый 09.06.2009, 13:51   #4
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

Код:
Uses crt;

type
gurnal=record
       fam:string;
       Ocen:integer;
       end;
var f:file of gurnal;
    x:gurnal;
    f1:text;
    m:integer;
    ch:char;
    
Procedure dobav;
begin
     assign(f,'tan.dat');
     reset(f);
     seek(f,filesize(f));
     with x do
     repeat
           write('vvedite fam');
           readln(fam);
           write('vvedite ocenku');
           readln(ocen);
           write(f,x);
           write('prodolgit vvod?');
           readln(ch);
           until ch='n';
close(f);
end;

procedure write_dat;
var code:integer;
    s:string;
    
begin
     assign(f,'tan.dat');
     rewrite(f);
     assign(f1,'tan.txt');
     reset(f1);
     while not eof(f1) do begin
          with x do    begin
               x.fam:='';
               readln(f1,S); {По другому организовал чтение из файла}
               while s[1]<>' ' do begin
                  x.fam:=x.fam+s[1];
                  delete(s,1,1);
                  end;
               val(s,ocen,code);
               end;
          write(f,x);
          end;
     close(f);
     close(f1);
     writeln('file zapisan v dat');
end;

Procedure write_txt;
Begin
     assign(f1,'tan.txt');
     rewrite(f1);
     assign(f,'tan.dat');
     reset(f);
     while not eof(f) do begin
           with x do begin
                read(f,x);
                if x.fam[length(x.fam)]<>' 'then
                   x.fam:=x.fam+' ';{Добавить обязательный пробел чтобы отделить оценку от фамилии}
                write(f1,x.fam);
                write(f1,x.ocen);
                writeln(f1);
                end;
           end;
     close(f1);
     close(f);
     writeln('file to txt');
end;

Procedure read_dat;
begin
     assign(f,'tan.dat');
     reset(f);
     with x do
          repeat
                read(f,x);
                writeln('familiya:',fam);
                write('ocenka:',ocen);
          until eof(f);
     close(f);
     writeln('tip file was read');
end;

Procedure read_txt;
Begin assign(f1,'tan.txt');
      reset(f1);
      while not eof(f1) do begin
            with x do begin
            readln(f1,fam);
            readln(f1,Ocen);
            end;
      end;
      close(f1);
      writeln('txt file was read');
end;

procedure sozd;
begin
     assign(f,'tan.dat');
     rewrite(f);
     with x do begin
          write('vvedite famil:');
          readln(fam);
          write('vvedite ocenku:');
          readln(ocen);
          end;
     write(f,x);
     close(f);
     writeln('file sozdan');
end;

begin
repeat
clrscr;
writeln('1 - exit');
writeln('2 - cozd file');
writeln('3 - dobav zap');
writeln('4 - 4tenie tip faila');
writeln('5 - zapis v text');
writeln('6 - 4tenie txt');
writeln('7 - zapis v tipiz');
writeln('vash vibor: ');
readln(m);
case m of
     1: exit;
     2: sozd;
     3: dobav;
     4: read_dat;
     5: write_txt;
     6: read_txt;
     7: write_dat;
end;
until false;
readkey;
end.
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 09.06.2009, 14:04   #5
tgig
Пользователь
 
Регистрация: 09.06.2009
Сообщений: 10
По умолчанию

ОГРОМНЕЙШЕЕ СПАСИБО!!! )))))) точно!! все отлично!!
tgig вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с чтением типизированного файла. Вадим Буренков Общие вопросы Delphi 8 28.05.2009 13:31
Текстовый и типизированный файл Пушистик Паскаль, Turbo Pascal, PascalABC.NET 0 15.04.2009 20:19
Переписать из типизированного файла в текстовый все данные. menlo Помощь студентам 3 10.03.2008 23:34
Вывести информацию из типизированного файла в combobox... tacer Помощь студентам 1 04.12.2007 11:46
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13