我自己定义的记录格式
DR=Record
A:String[20];
B:Integer;
end;
又自己定义文件将这个记录存到物理磁盘文件中(用的是文件流方式);
我做的是把这个磁盘文件的所有记录显示在StringGrid(只是2列(A,B))中,
并在修改StringGrid中的数据后,能够把所有的记录保存到我的那个文件中,这个怎么做
或有关资料发给我 [email protected]
或有关网站地址写一下
DR=Record
A:String[20];
B:Integer;
end;
又自己定义文件将这个记录存到物理磁盘文件中(用的是文件流方式);
我做的是把这个磁盘文件的所有记录显示在StringGrid(只是2列(A,B))中,
并在修改StringGrid中的数据后,能够把所有的记录保存到我的那个文件中,这个怎么做
或有关资料发给我 [email protected]
或有关网站地址写一下
解决方案 »
- 使用clientdataset Reconcile 出错,请问这里的代码有什么错。
- 有偿转让Java即时通信工具源程序及设计文档
- 请问用DbGrid或是从DBGrid继承写组件时,怎么才能实现同一列中对不同的行设置不同的EditMask; 为什么没有人回答呀
- 请问:当一个窗体被打开后,如何知道打开它的那个窗体的NAME(不通过变量的方式)?
- 年末了,不想把这个问题留到明年来解决,请牛人们帮助解决
- toolbar怎么现实背景图片?立即给分
- 我有一个系统需开发谁愿意辅导我?
- iocp的接收接收数据过程中调用ado线程插入数据,数据有错乱
- 如何判断当前计算机是否已经连入局域网(而不是Internet)?
- 请问它该如何解决!
- oracle数据库中的声音如何保存为RM文件????
- 用delphi取网页的文字,保存成txt或者是excel文件。怎么做?
var r: dr; i: integer;
begin
...
fS.LoadFromFile('..
for I:= 0 to fs.size div sizeof(dr) do
begin
fs.read(...
end;
...
end;
如你覺得定位復雜, 也可每次都重新將整個 stringgrid 的內容重新寫入!!!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;type
TForm1 = class(TForm)
ButtonRead: TButton;
StringGrid: TStringGrid;
ButtonWrite: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure ButtonReadClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ButtonWriteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ButtonReadClick(Sender: TObject);
var
FS: TFileStream;
Str: string[13];
N: Integer;
I: Integer;
EditStr: string[100];
begin
FS := TFileStream.Create('eg.dat', fmOpenRead);
try
I := 1;
repeat
FS.Read(Str, SizeOf(Str));
Self.StringGrid.Cells[0, I] := Str;
FS.Read(N, SizeOf(N));
Self.StringGrid.Cells[1, I] := IntToStr(N + 10);
Inc(I);
until FS.Position >= FS.Size - SizeOf(EditStr);
FS.Read(EditStr, SizeOf(EditStr));
Edit2.Text := EditStr; finally
FS.Free();
FS := nil;
end;
Self.StringGrid.Update();
end;procedure TForm1.FormCreate(Sender: TObject);
const
Str: string[13] = 'This is line ';
var
I: Integer;
begin
Self.StringGrid.Cells[0, 0] := 'String';
Self.StringGrid.Cells[1, 0] := 'Integer';
for I := 1 to 9 do
begin
Self.StringGrid.Cells[0, I] := Str;
Self.StringGrid.Cells[1, I] := IntToStr(I);
end;
end;procedure TForm1.ButtonWriteClick(Sender: TObject);
var
FS: TFileStream;
Str: string[13];
N: Integer;
I: Integer;
EditStr: string[100];
begin
FS := TFileStream.Create('eg.dat', fmCreate or fmOpenWrite and fmShareDenyWrite);
try
for I := 1 to 9 do
begin
Str := Self.StringGrid.Cells[0, I];
FS.Write(Str, SizeOf(Str));
N := StrToIntDef(Self.StringGrid.Cells[1, I], 0);
FS.Write(N, SizeOf(N));
end;
EditStr := Edit1.Text;
Fs.Write(EditStr, Sizeof(EditStr));
finally
FS.Free();
FS := nil;
end;
end;end.