我之前有fortran的计算程序,现在想用delphi来做界面,调用fortran的exe文件,其中用到了两个.dat文件,input.dat和output.dat.在delphi里将数据写进input.dat,然后调用fortran的exe,结果存入output.dat文件,最后在delphi里将结果读出来.现在的问题是输入数据写入input.dat都是乱码,fortran计算完也得不到结果.另外有一点不清楚的是,向.dat文件写入和读出数据时怎样对应呢,是不是只要顺序对了就可以了啊?请教各位大虾,指点迷津啊!
我的代码很简单:
    assignfile(F1,'input23.dat');
    rewrite(F1);
    write(F1,n,dd,nn,s,xne00,d3,etm,etmax,rl,avb,ave,evb,eve,cmb,cme,bu,pa,ta,pk,tk,xne0);
    CloseFile(F1);
    WinExec('F:\fortran1\f4108.exe',sw_restore);
    read(f2,xne,pe,ge,pko,tko,pt,tt,rof,gk,gs,pz,tz,ek,et,xnt,sgt,ps,ts,cmeo,buo,emm,eng,wk,nh);
    closefile(f2); 上面的n,dd,s等都是delphi中定义的变量,怎样与.dat文件中的对应啊?

解决方案 »

  1.   

    delphi文件操作,要注意写入文件要以什么格式,比如:文本还是二进制.
    另外要符合你dat 文件记录的格式,和指针移动的位置
    建议你看一下delphi操作文件的相关资料再动手不迟  Delphi对文件读写是来源于Pascal,你可以找一本Pascal的书来阅读。下面简单地说一下: 
        1、首先定义一个文件变量。 
        如果是文本方式:var F: TextFile; 
        如果是二进制方式:var DataFile: file; 
        2、打开文件,先用AssignFile指定文件名,然后用Reset来打开。如: 
        AssignFile(F, 'test.txt'); 
        Reset(F); 
        3、文本文件的读写方法:然后使用Read和Readln读文件。Read相当于VB的Input #,而Readln相当于Line Input #。写文件使用Write和Writeln,相当于Print #语句。 
        二进制文件的读写方法:然后使用BlockRead读文件。BlockRead相当于VB的Get。写文件使用BlockWrite,相当于Put语句。 
        4、使用CloseFile关闭文件。 
        另外,Delphi也可以使用Win32 API函数读写文件。 
      

  2.   

    格式你自己定,只不过是个参数传递而已。其实我建议你用文本文件就可以例如
    文本文件内容:
    Var1=100;
    Var2=200;例如每行表示一个变量赋值。
    不太清楚ForTran有没有Ini文件操作的类或函数,如果有用Ini文件就可以。