nbsp; Rewrite(F); Write(F,Rec);
Rec.pp_No:=''''0002''''; Rec.pp_Sum:=58.2; Write(F,Rec);
Rec.pp_No:=''''0003''''; Rec.pp_Sum:=258.242; Write(F,Rec);
seek(F,1); Read(F,Rec2);
seek(F,1); Truncate(F); {删除,只剩第0笔}
Canvas.TextOut(5,10,Rec2.pp_No); Canvas.TextOut(5,30,Rec2.pp_Name); Canvas.TextOut(5,50,Format(''''%d'''',[Rec2.pp_Age])); Canvas.TextOut(5,70,Format(''''%f'''',[Rec2.pp_Sum]));
CloseFile(F); end;
结果 pp_No存入6 Bytes pp_Name存入11 Bytes pp_Age存入4 Bytes(Integer 4 Bytes) pp_Sum存入8 Bytes(Double 8 Bytes)
整个Record以16的倍数存档. EXAMPLE var F: TextFile; begin AssignFile(F, ''''NEWFILE.$$$''''); Rewrite(F); Writeln(F, ''''Just created file with this text in it...''''); CloseFile(F); end; ----------------------------------------------------------------------------- Seek 移动档案指标. ----------------------------------------------------------------------------- Unit System 函数原型 procedure Seek(var F; N: Longint); 说明 Seek从0开始. Example var f: file of Byte; size : Longint; S: string; y: Integer; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f); size := FileSize(f); S := ''''File size in bytes: '''' + IntToStr(size); y := 10; Canvas.TextOut(5, y, S); y := y + Canvas.TextHeight(S) + 5; S := ''''Seeking halfway into file...''''; Canvas.TextOut(5, y, S); y := y + Canvas.TextHeight(S) + 5; Seek(f,size div 2); S := ''''Position is now '''' + IntToStr(FilePos(f)); Canvas.TextOut(5, y, S); CloseFile(f); end; end; ## FileSize, Seek, FilePos Example ----------------------------------------------------------------------------- Truncate 将目前档案指标位置之後的档案内容全部删除. ----------------------------------------------------------------------------- Unit System 函数原型 procedure Truncate(var F); 范例 var
f: file of Integer; i,j: Integer; begin AssignFile(f,''''TEST.INT''''); Rewrite(f); for i := 1 to 6 do Write(f,i); Writeln(''''File before truncation:''''); Reset(f); while not Eof(f) do begin Read(f,i); Writeln(i); end; Reset(f); for i := 1 to 3 do Read(f,j); { Read ahead 3 records } Truncate(f); { Cut file off here }
Writeln; Writeln(''''File after truncation:''''); Reset(f); while not Eof(f) do begin Read(f,i); Writeln(i); end; CloseFile(f); Erase(f); end; ----------------------------------------------------------------------------- FilePos 传回目前档案的位置. ----------------------------------------------------------------------------- Unit System 函数原型 function FilePos(var F): Longint 说明 F 不可为 Text File 档头 :FilePos(F):=0; 档尾 :Eof(F):=True; 范例 var f: file of Byte; S: string; begin S:= ''''c:\ka\abc.txt''''; AssignFile(f, S); Reset(f); Seek(f,1); Label1.Caption := ''''现在位置 : '''' + IntToStr(FilePos(f)); end; Example var f: file of Byte; size : Longint; S: string; y: Integer; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f); size := FileSize(f); S := ''''File size in bytes: '''' + IntToStr(size); y := 10; Canvas.TextOut(5, y, S); y := y + Canvas.TextHeight(S) + 5; S := ''''Seeking halfway into file...''''; Canvas.TextOut(5, y, S);
y := y + Canvas.TextHeight(S) + 5; Seek(f,size div 2); S := ''''Position is now '''' + IntToStr(FilePos(f)); Canvas.TextOut(5, y, S); CloseFile(f); end; end; ##FileSize, Seek, FilePos Example ----------------------------------------------------------------------------- FileSize 档案长度. ----------------------------------------------------------------------------- Unit System 函数原型 function FileSize(var F): Integer; 说明 F 不可为 Text File 如果F为record file,则传回record数, 否则传回Byte数. ## FileSize, Seek, FilePos Example ----------------------------------------------------------------------------- Eof 测试档案是否结束. ----------------------------------------------------------------------------- Unit System 函数原型 function Eof(var F): Boolean; 函数原型 function Eof [ (var F: Text) ]: Boolean; 范例 var F1, F2: TextFile; Ch: Char; begin if OpenDialog1.Execute then begin AssignFile(F1, OpenDialog1.Filename); Reset(F1); if SaveDialog1.Execute then begin AssignFile(F2, OpenDialog1.Filename); Rewrite(F2); while not Eof(F1) do begin Read(F1, Ch); Write(F2, Ch); end; CloseFile(F2); end; CloseFile(F1); end; end; Example var
F1, F2: TextFile; Ch: Char; begin if OpenDialog1.Execute then begin AssignFile(F1, OpenDialog1.Filename); Reset(F1); if SaveDialog1.Execute then begin AssignFile(F2, SaveDialog1.Filename); Rewrite(F2); while not Eof << 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >> |