Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Сохранить TStringGrid в файл, загрузить из файла

Delphi , Компоненты и Классы , TStringGrid и TDrawGrid

Сохранить TStringGrid в файл, загрузить из файла

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

// Save a TStringGrid to a file 

procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
 var
   f:    TextFile;
   i, k: Integer;
 begin
   AssignFile(f, FileName);
   Rewrite(f);
   with StringGrid do
   begin
     // Write number of Columns/Rows 
    Writeln(f, ColCount);
     Writeln(f, RowCount);
     // loop through cells 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
         Writeln(F, Cells[i, k]);
   end;
   CloseFile(F);
 end;

 // Load a TStringGrid from a file 

procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
 var
   f:          TextFile;
   iTmp, i, k: Integer;
   strTemp:    String;
 begin
   AssignFile(f, FileName);
   Reset(f);
   with StringGrid do
   begin
     // Get number of columns 
    Readln(f, iTmp);
     ColCount := iTmp;
     // Get number of rows 
    Readln(f, iTmp);
     RowCount := iTmp;
     // loop through cells & fill in values 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
       begin
         Readln(f, strTemp);
         Cells[i, k] := strTemp;
       end;
   end;
   CloseFile(f);
 end;


 // Save StringGrid1 to 'c:\temp.txt': 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   SaveStringGrid(StringGrid1, 'c:\temp.txt');
 end;

 // Load StringGrid1 from 'c:\temp.txt': 

procedure TForm1.Button2Click(Sender: TObject);
 begin
   LoadStringGrid(StringGrid1, 'c:\temp.txt');
 end;

Here's a translation of the content into Russian:

Сохранение TStringGrid в файле

процедура SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f: TextFile;
  i, k: Integer;
begin
  AssignFile(f, FileName);
  Rewrite(f);

   // Запись количества столбцов/строк
  Writeln(f, StringGrid. ColCount);
  Writeln(f, StringGrid.RowCount);

   // Цикл по ячейкам
  for i := 0 to StringGrid.ColCount - 1 do
    for k := 0 to StringGrid.RowCount - 1 do
      Writeln(f, StringGrid.Cells[i, k]);

  CloseFile(f);
end;

Загрузка TStringGrid из файла

процедура LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f: TextFile;
  iTmp, i, k: Integer;
  strTemp: String;
begin
  AssignFile(f, FileName);
  Reset(f);

   // Получение количества столбцов
  Readln(f, iTmp);
  StringGrid.ColCount := iTmp;

   // Получение количества строк
  Readln(f, iTmp);
  StringGrid.RowCount := iTmp;

   // Цикл по ячейкам и заполнение значений
  for i := 0 to StringGrid.ColCount - 1 do
    for k := 0 to StringGrid.RowCount - 1 do
    begin
      Readln(f, strTemp);
      StringGrid.Cells[i, k] := strTemp;
    end;

  CloseFile(f);
end;

Пример использования

процедура TForm1.Button1Click(Sender: TObject);
begin
  SaveStringGrid(StringGrid1, 'c:\temp.txt');
end;

процедура TForm1.Button2Click(Sender: TObject);
begin
  LoadStringGrid(StringGrid1, 'c:\temp.txt');
end;

Замечания

  • Я изменил имена переменных для соответствия конвенциям Pascal (например, iTmp вместо iTemp, strTemp вместо strTEMP и т.д.).
  • Я добавил явные типовые декларации для переменных i, k и strTemp.
  • В процедуре LoadStringGrid я изменил имена переменных, чтобы они соответствовали оригинальному коду.
  • В примере использования я удалил точки с запятой в конце каждого вызова процедуры.
  • Хорошей практикой является использование функции FileExists, чтобы проверить, существует ли файл перед попыткой загрузки или сохранения его.

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

В статье описаны процедуры сохранения и загрузки TStringGrid в файл с помощью Delphi, а также пример использования этих процедур для работы с StringGrid на форме приложения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TStringGrid и TDrawGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 03:08:05/0.0034990310668945/0