5,388
社区成员
发帖
与我相关
我的任务
分享
procedure Flush ( var FileHandle : TextFile ) ;
当然调用CloseFile也会将缓存内容写入磁盘。
参考http://www.delphibasics.co.uk/RTL.asp?Name=Flush
procedure TMainForm.CalcEat(var Msg: TMessage);//统计订餐员工明细
var
F:TextFile;
strFile:String;
i:Integer;
ArrCount:Array[1..4] of Integer;
begin
for i:=1 to 4 do
ArrCount[i]:=0;
with AQuery do
begin
Close;
SQL.Clear;
SQL.Add(' Select b.EmployeNo,b.EmployeName,b.department,');
SQL.Add(' a.BookingDate,a.InsertDateTime,a.Dining');
SQL.Add(' From Booking a Left outer join ygjbzl b On a.EmployeNo=b.EmployeNo');
SQL.Add(' Where a.BookingDate='''+NextDate+'''');
SQL.Add(' Order by a.InsertDateTime');
Open;
end;
strFile :=ExeFileDir+'\订餐员工记录统计\订餐员工记录'+curDate+'.txt';
try
AssignFile(F, strFile);
Rewrite(F);
Append(F);
Writeln(F, curDate+'('+sWeek+')订餐员工明细记录如下:');
Writeln(F, '员工编号 员工姓名 部门 订餐日 刷卡时间 餐别');
Writeln(F, '======== ======== ======== ======== ================ ======');
with AQuery do
begin
First;
While Not Eof do
begin
Writeln(F, Format('%-12s',[Trim(FieldByName('EmployeNo').AsString)])+
Format('%-12s',[Trim(FieldByName('EmployeName').AsString)])+
Format('%-13s',[Trim(FieldByName('department').AsString)])+
Format('%-12s',[Trim(FieldByName('BookingDate').AsString)])+
Format('%-22s',[Trim(FieldByName('InsertDateTime').AsString)])+
Format('%-8s',[Trim(ConvertToValue(FieldByName('Dining').AsInteger))]));
Inc(ArrCount[FieldByName('Dining').AsInteger]);
Next;
end;
end;
Writeln(F, '-----------------------------------------------------------------------------');
if ArrCount[1]<>0 then
Writeln(F, '特别早餐共:'+IntToStr(ArrCount[1])+'人');
if ArrCount[2]<>0 then
Write(F, '早餐共:'+IntToStr(ArrCount[2])+'人 ');
if ArrCount[3]<>0 then
Write(F, '中餐共:'+IntToStr(ArrCount[3])+'人 ');
if ArrCount[4]<>0 then
Write(F, '晚餐共:'+IntToStr(ArrCount[4])+'人');
Flush(F);
CloseFile(F);
except
ShowMessage(Exception(ExceptObject).Message);
end;
end;
上面是写入记事本的例子