お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"ヘッダーファイルを読み込む"






こん○○は、プリです。

BlockReadやBlockWiteのデルファイのヘルプを見てもサンプルの
少なさで悲しんでいました。で、らせん企画さんのおかげで解決できましたので
許可なしですがアップしまーす。

フォームにボタンとOpenDialogとEdit2つLabel1つをおいてください。

type
  TRec = record             {読み込みたいレコードヘッダー}
   H1 : array[0..9] of char;{文字配列}
   H2 : array[0..9] of char;
   H3 : array[0..9] of char;
   end;

  TForm1 = class(TForm)
    Label1: TLabel;             {フォームにラベル1}
    Button1: TButton;           {ボタン1} 
    Edit1: TEdit;               {エディット1} 
    Edit2: TEdit;               {エディット2}
    OpenDialog1: TOpenDialog;   
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    procedure ReadData(FName:String); {読み込み}
    Procedure WriteData(FName:String);{書き込み}
    procedure ShowFile;               {表示}
  end;

var
  Form1: TForm1;
  HData : TRec;  {ヘッダーレコード変数}
  F: File;       {ファイル変数}

implementation

{$R *.DFM}

{▽表示}
procedure TForm1.ShowFile;
begin
  Label1.caption := HData.H1;
  Edit1.Text     := HData.H2;
  Edit2.Text     := HData.H3;
end;

procedure TForm1.ReadData(FName:String);
var
  ReadByte :Word;
  buf1,
  buf2:array[0..31]of char;
begin
   AssignFile(F,FName);
     Reset(F, 1);
 try
     BlockRead(F,HData.H1,SizeOf(HData.H1),ReadByte);
     BlockRead(F,HData.H2,sizeOf(buf1),ReadByte);
     BlockRead(F,HData.H3,SizeOf(buf2),ReadByte);
  finally
    closeFile(F);
   end;
    ShowFile; {表示呼び出し}
end;

{ファイルへ書き込み}
Procedure TForm1.WriteData(FName:String);
var
  WriteByte :Word;           {書き込みバイト}
  buf1,
  buf2:array[0..31]of char;   {ひょっとしたらいらないかも}
begin
   AssignFile(F,FName);
 try
     Reset(F, 1);
     StrPCopy(Hdata.H1,Label1.caption);
     StrPCopy(HData.H2,Edit1.Text);
     StrPCopy(HData.H3,Edit2.Text);
     BlockWrite(F,HData.H1,SizeOf(HData.H1),WriteByte);
     BlockWrite(F,Hdata.H2,sizeOf(buf1),WriteByte);
     BlockWrite(F,HData.H3,SizeOf(buf2));
  finally
   closeFile(F);
   end;
end;

{▽ボタンクリック時}
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    Form1.Caption := OpenDialog1.FileName;
    ReadData(OpenDialog1.FileName); {ファイル読み込み}
  end;
  ShowFile; {読み込んだ内容表示}
end;

end.

P.S.初めてアップするので添削歓迎でーす。
    BlockReadの練習のために作成しました。

プリ BZH17723  (10/07/18)

Original document by プリ            氏 ID:(BZH17723)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum