|
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
|