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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 20:37   #1
Таир
 
Регистрация: 06.05.2011
Сообщений: 6
По умолчанию Stringgrid и типизированный файл

Задача приблизительно такова, с помощью stringgrid'a создать типизированный файл, затем из этого файла считать инфу и заполнить другую таблицу(stringgrid2 в этой же форме).

Вот создаю например файл

Код:
procedure TForm1.Button1Click(Sender: TObject);
Type MyRec=Record
           Name:string[10];
           Surname:string[10];
           Age:integer;
           city:string[10];
           street:string[10];
        End;
Var MyVar:MyRec;  f:File of MyRec;
begin
 
AssignFile(f,'c:\MyFile.dat');
Rewrite(f);
 
for  i:=1 to stringgrid1.rowCount-1 do begin
MyVar.Name:=stringgrid1.Cells[1,i];
MyVar.Surname:=stringgrid1.Cells[2,i];
MyVar.Age:=strtoint(stringgrid1.Cells[3,i]);
MyVar.City:=stringgrid1.Cells[4,i];
MyVar.Street:=stringgrid1.Cells[5,i];  
end;
 
Write(f,MyVar);
Closefile(f);
end;
Как считать данные из этого файла и вписать их в stringgrid2?
Таир вне форума Ответить с цитированием
Старый 06.05.2011, 21:33   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

начнём сначала...
у Вас ошибка в записи. Запишется только ОДНА (последняя строчка)
надо так:
Код:
AssignFile(f,'c:\MyFile.dat');
Rewrite(f);
 
for  i:=1 to stringgrid1.rowCount-1 do begin
  MyVar.Name:=stringgrid1.Cells[1,i];
  MyVar.Surname:=stringgrid1.Cells[2,i];
  MyVar.Age:=strtoint(stringgrid1.Cells[3,i]);
  MyVar.City:=stringgrid1.Cells[4,i];
  MyVar.Street:=stringgrid1.Cells[5,i];  
  Write(f,MyVar);
end;
Closefile(f);
это с учётом того, что Вы понимаете, что записи в StringGrid нумеруются от нуля. Раз Вы читаете начиная с 1, значит первая строчка у Вас отведена под заголовки.. так?

читать так же просто, как и писать!
Код:
  AssignFile(f,'c:\MyFile.dat');
  Reset(f);

  i := FileSize(f); {определим количество записей в файле}

  {установим нужный размер СтрингГрида }
  stringgrid1.rowCount := i + 1; // +1 - строчка на заголовки
 
  for  i:=1 to stringgrid1.rowCount-1 do begin
     Read(f, MyVar);
     stringgrid1.Cells[1,i] := MyVar.Name;
     stringgrid1.Cells[2,i] := MyVar.Surname;
     stringgrid1.Cells[3,i] := IntToStr(MyVar.Age);
     stringgrid1.Cells[4,i] := MyVar.City;
     stringgrid1.Cells[5,i] := MyVar.Street;  
  end;
  Closefile(f);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.05.2011, 08:01   #3
Таир
 
Регистрация: 06.05.2011
Сообщений: 6
По умолчанию

Спасибо за то что указали на ошибки и помогли с примером, теперь действительно работет и даже понятно как .
Таир вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
типизированный файл fate Общие вопросы Delphi 5 03.05.2011 13:34
типизированный файл s2dentishe Помощь студентам 2 08.04.2011 16:34
Типизированный файл с натуральными числами. Числа, встречающиеся 1 раз переписать в другой файл [Паскаль] mifomen Помощь студентам 7 16.12.2010 22:00
Типизированный файл Юляшко Паскаль, Turbo Pascal, PascalABC.NET 1 28.04.2010 16:15