reset() read() assignfile() only use for TEXTFILE。
Please Use Fileopen() or Openfile(),fileread().....

解决方案 »

  1.   

    的确如wsz所说,记录文件和文本文件有区别的。记录文件是二进制的。
      

  2.   

    我看和边界对齐有关,改成:
    {$a-}
    type
        Trjye = record
              kmh: string[4];                //四位科目号
              date: string[8];            //八位日期
              jfye: string[16];            //十六位借方余额
              dfye: string[16];          //十六位贷方余额
        end;{$a+}
      

  3.   

    现在我要做的是两个系统之间的数据交换,就要求将这个文本文件的内容导入到数据库中,数据库中表结构是(kmh vchar(4),date date,jfye money,dfye money),请教各位兄台有何良策,另外,如何去掉jfye,dfye的前导0,我用strtoint()结果为0,大概是有前导0的原因。
      

  4.   

    wsz兄,该文件就是一个文本文件,不含二进制信息。
      

  5.   

    建议用read()函数读出定长的字符串,再将字符串进行转换成你所需的类型
      

  6.   

    改成:
    {$a-}//在你这里可能无所谓
        Trjye = record
              kmh: array [0..3] of char;                //四位科目号
              date: array [0..7] of char;            //八位日期
              jfye: array [0..15] of char;            //十六位借方余额
              dfye: array [0..15] of char;          //十六位贷方余额
        end;
    {$a+}
    试一下,用短字符串string[n]定义时,string[0]是字符串长度,
    因而按你的定义法:
    Var
      test:Trjye;   Test.kmh:='1111';
       Test.date :='88888888';
       Test.jfye :='2222222222222222';
       Test.dfye :='3333333333333333';
    时内存中的影像为:
    $04$34$34$34$34$08$38$38....
    因而,你用这样的结构读出来的内容肯定不对,
    我那么定义肯定能行,给分吧,只是少了点:)