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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2012, 19:42   #1
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
Вопрос Типизированный файл?!(Delphi)

Обясните как считать из типизированного файла данные!!! Я вот сохраняю в файл, ток не знаю, правильно или нет( по крайней мер туда, что-то добавляется), а вот когда считываю из файла уже имеющегося, то считывает пустые строки в динамический список!!!
Объясните как правильно сделать!!!

Вот мой код:
Код:

CONST
   S='datafile.dat';

TYPE
   String20=string[20];
   LIST_UK=^LIST;
   LIST = Record
      name:String20;
      lastname:String20;
      next:LIST_UK;
   end;

Var
  Spisok,Head:LIST_UK;
  name_vv,lastname_vv:String20;
  g:byte;
  F:file of LIST_UK;

{ПОЦЕДУРА ДОБАВЛЕНИЯ НОВОГО ЭЛ-ТА}
Procedure Input(name_pr,lastname_pr:String20);
Var
   tmp:LIST_UK;
  BEGIN
    IF Spisok=nil Then
      Begin
        new(Spisok);
        tmp:=Spisok;
        Head:=Spisok;
      End
    Else
      Begin
        tmp:=Spisok;
        While tmp^.next<>nil Do
          tmp:=tmp^.next;
        New(tmp^.next);
        tmp:=tmp^.next;
      End;
    tmp^.next:=nil;
    tmp^.name:=name_pr;
    tmp^.lastname:=lastname_pr;
  END;

{ПРОЦЕДУРА ОТОБРАЖЕНИЯ ВСЕГО СПИСКА}
PROCEDURE  Show;
 BEGIN
   Spisok:=Head;
   While Spisok<>nil Do
    Begin
      Writeln('Name: ',Spisok^.name);
      Writeln('LastName:',Spisok^.lastname);
      Writeln;
      Spisok:=Spisok^.next;
    End;
  Spisok:=Head;
 END;

{ПРОЦЕДУРА СОХРАНЕНИЯ В ФАЙЛ}
PROCEDURE SaveToFile;
 BEGIN
   Spisok:=Head;
   AssignFile(F,S);
   Rewrite(F);
   While Spisok<>nil Do
     Begin
       Write(F,Spisok);
       Spisok:=Spisok^.next;
     End;
   CloseFile(F);
  Spisok:=Head;
 END;

{ПРОЦКДУРА ОТКЫРТИЯ ФАЙЛА И СЧИТЫВАНИЯ ДАНЫЫХ В ДИНАМИЧЕСКИЙ СПИСОК}
PROCEDURE OpenChoosenFile;
  Var
     tmp:LIST_UK;
  BEGIN
    AssignFile(F,S);
    Reset(F);
    While not Eof(F) do
      Begin
        IF Spisok=nil Then
          Begin
            new(Spisok);
            tmp:=Spisok;
            Head:=Spisok;
          End
        Else
          Begin
            tmp:=Spisok;
            While tmp^.next<>nil Do
                    tmp:=tmp^.next;
            New(tmp^.next);
            tmp:=tmp^.next;
          End;
       tmp^.next:=nil;
       Write(F,tmp);
     End;
   CloseFile(F);
  END;
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 11.05.2012, 19:52   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Вы создаете файл указателей на записи, а не файл записей.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 11.05.2012, 20:03   #3
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Так это получается, стоит как то записывать по эл-там в файл?! Или как то подругому, можно по побдобней?!
<----Весы Там.
Npwas вне форума Ответить с цитированием
Старый 11.05.2012, 20:14   #4
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Один из вариантов такой:
Код:
TYPE
   String20=string[20];

   LIST_UK=^LIST;

   LIST_F = Record
      name:String20;
      lastname:String20;
   end;

   LIST = Record
      LIST_S:LIST_F;
      next:LIST_UK;
   end;

Var
  Spisok,Head:LIST_UK;
  Spisok_F:LIST_F;
  name_vv,lastname_vv:String20;
  g:byte;
  F:file of LIST_F;
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 11.05.2012, 20:34   #5
Npwas
Форумчанин
 
Аватар для Npwas
 
Регистрация: 26.09.2011
Сообщений: 158
По умолчанию

Спаиб за помощь, на весы нажал!!! Все, теперь разобрался че к чему!!!
<----Весы Там.
Npwas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типизированный файл (Delphi) NiceToFFy Помощь студентам 2 14.11.2011 16:06
задача - создать типизированный файл и обработать его на Delphi Konctantin Помощь студентам 4 12.10.2011 19:01
Типизированный файл file of integer (добавить в конец файла копии положительных чисел) (Delphi) phasha Паскаль, Turbo Pascal, PascalABC.NET 8 17.04.2011 15:50
Delphi - Типизированный файл honest Помощь студентам 3 10.06.2009 23:52
Типизированный файл в Delphi Dice Помощь студентам 1 15.12.2008 18:45