西南财经大学校园图片:Fortran中能否调用windowsAPI函数?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 16:08:58
大家在Fortran中写文件应该都是用文本吧,但很多时候处理还是要把数据弄到Excel中处理,这样
不如直接把数据写到Excel中来的简单。现在我有段代码,不知如何在Fortran中实现,源代码是在Delphi中实现的,但我改了下,没有用到Delphi 函数,全部用的是windows API了:
//这些数组变量要定义
CXlsBof: array[0..5] of Word = ($809, 8, 0, $10, 0, 0);
CXlsEof: array[0..1] of Word = ($0A, 00);
CXlsNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
//以下是实现的代码
Handle:= CreateFile(PChar('E:\1.xls'), GENERIC_READ or GENERIC_WRITE,
0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
//CreateFile是API函数,phar是Delphi函数,没什么作用,是为了让字符串兼容windows类型,Handle 是longword类型变量
AValue:= '222222';
WriteFile(Handle,CXlsBof, SizeOf(CXlsBof),R,nil);
//SizeOf是delphi函数,求数组的大小,WriteFile是API 函数
L := Length(AValue);
CXlsLabel[1] := 8 + L;
CXlsLabel[2] := 0;
CXlsLabel[3] := 0;
CXlsLabel[5] := L;
WriteFile(Handle,CXlsLabel, SizeOf(CXlsLabel),R,nil);
WriteFile(Handle,Pointer(AValue)^,L,R,nil);
WriteFile(Handle,CXlsEof, SizeOf(CXlsEof),R,nil);
CloseHandle(Handle);
//CloseHandle是API函数
这样就可以把2222写进文件,并且可以用Excel打开了