另外我先用FileCreate('destination.txt')建立文件(此时文件destination.txt不存在),然后运行TStringList.SaveToFile('destination.txt')时出错,但如果不用FileCreate,在相同路径下直接建立一文件不会出错,请问为何?

解决方案 »

  1.   

    最好是把此文件作为一个表来处理,否则内存占用量太大了。
    因为如果没有,系统会自己建立一个destination.txt文件。
      

  2.   

    TFileStream肯定效率要高一些。因为直接以二进制打开,不用进行ASC的转化
      

  3.   

    aa.txt文件格式
    2093 Charlie Calvert C2121 1234 6.0
    2610 Scott Frolich   E2126 5678 5.11
    2900 Heather Latham  C2221 9012 5.10
    3265 Xavier Pacheco  C0001 3456 5.6
    0007 Jason Sprenger  F3169 7890 6.0
    1001 Matt Stave      C3456 0987 5.9
    2611 Steve Teixeira  E2127 6543 6.5
    那么定义一个文件如下aa.sch(一定要用该文件名)
    [PASADV]
    FILETYPE = FIXED
    CHARSET = ascii
    Field1 = EmpNo,LONGINT,04,00,00
    Field2 = Name,CHAR,15,00,05
    Field3 = CubeNo,CHAR,05,00,21
    Field4 = PhoneExt,LONGINT,04,00,27
    Field5 = Height,FLOAT,05,02,32这样你就可以用Table(tabletype=ttAsc),然后就可以当作表来使用了
      

  4.   

    我怀疑TStringList读文件时本身就是使用TFileStream.....
      

  5.   

    非常感谢大家参与,一旦解决,马上给“分”
      其实我现在是用ADO将Source.txt(ID,Time等)作为数据源来连接,现在我要从10万个ID中随机抽出2万5千个ID(当然不能相同),并存入destination.txt中,我的作法是:
    1.打开DataSet(连接Source.txt);
    2.将DataSet中的ID加入sStringList中;
    3.在TStringList.Count范围内随即产生一个整数;
    4.根据产生的随机数取得ID,放入dStringList,如果和此前相同则继续,直到取出2万5千个。请大家提出意见,特别是根据现实情况(数据较多),存在的问题。
      

  6.   

    3.在sStringList.Count范围内随机产生一个整数;另外判断重复在第3步进行。