お知らせ

電子会議

ライブラリ

FDelphi サイト全文検索

Delphi FAQ一覧

サンプル蔵



FDelphi FAQ
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」

[Q]
StringGridにはSaveToFileメソッドが見あたりません どうやって保存するのでしょう。

[A]
セルの文字列に改行コードが含まれないなら、比較的簡単に保存する方法
が有ります。

1.ファイルに保存する場合、テキストファイルルーチンを使い
  For..to..do..を2重にしてWritelnで書き込む

2.ストリームに保存する場合.
[例]

1.

  var
     F  : TextFile;
    I,J:Integer;
  begin
    AssignFile(F,'Grid.dat');
    ReWrite(F);
    for I:=0 to StringGrid1.ColCount-1 do
      for J:=0 to StringGrid1.RowCount-1 do
        Writeln(F,StringGrid1.Cells[I,J]);
    CloseFile(F);
  end;


2.

procedure StrWrite(Stream:TStream;Str:String);
var Size:Integer;
begin
  Size:=Length(Str);
  Stream.WriteBuffer(Size,SizeOf(Size));
  Stream.WriteBuffer(PChar(Str)^,Size);
end;

function StrRead(Stream:TStream):String;
var Res,Size:Integer;
begin
  Res:=Stream.Read(Size,SizeOf(Size));
  if Res=SizeOf(Size) then begin
    SetLength(Result,Size);
    Stream.Read(PChar(Result)^,Size);
  end;
end;


procedure SaveGrid(Stream:TStream;Grid:TStringGrid);
var I:Integer;
begin
  for I:=0 to Grid.ColCount-1 do
    StrWrite(Stream,Grid.Cols[i].Text);
end;

procedure LoadGrid(Stream:TStream;Grid:TStringGrid);
var I:Integer;
    S:TStrings;
begin
  S:=TStringList.Create;
  for I:=0 to Grid.ColCount-1 do
  begin
    S.Text:=StrRead(Stream);
    Grid.cols[i].Assign(S);
  end;
  S.Free;
end;


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。

Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会