各位高手,求助如何用delphi读写csv文件,谢谢了 

解决方案 »

  1.   

    用ADO,假设你有两个csv文件tmp1.csv和tmp2.csv文件都在C:\Test文件夹下

    1、连接字符串为Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test;Extended Properties=Text;
    2、表名为tmp1#csv和tmp2#csv也就是把Test文件夹当成数据库,tmp1.csv和tmp2.csv分别是两张表,只是表名变成了tmp1#csv和tmp2#csv
    操作的话跟数据库操作一样,你可以用ADO修改数据并提交,也可以用SQL语句进程Select、Inser、Update等,语法与Access的一致。
      

  2.   

    给你一个简单的方法
    你根据实际情况变通
    procedure TForm1.Button2Click(Sender: TObject);
    var
      CsvLines, CommaStr: TStringList;
    begin
      CsvLines := TStringList.Create;
      CommaStr := TStringList.Create;
      CommaStr.CommaText := '1 2 3 4 5 6 7 8 9';
      CsvLines.Add(CommaStr.CommaText);
      CommaStr.CommaText := '9 8 7 6 5 4 3 2 1';
      CsvLines.Add(CommaStr.CommaText);
      CsvLines.SaveToFile('test.csv');  //写入
      CsvLines.LoadFromFile('test.csv');  //读取
      CsvLines.Free;
      CommaStr.Free;
    end;
      

  3.   

    这个csv表中有很多行数据,每行数据用“,”分割,我想取每行的某些数据,写入时也是如次,如何处理,谢谢
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      CsvLines, CommaStr: TStringList;
    begin
      CsvLines := TStringList.Create;
      CommaStr := TStringList.Create;
      CsvLines.LoadFromFile('test.csv');  //读取
      CommaStr.CommaText := CsvLines[1];
      CommaStr[2] := '.67138671875';  //99.0859375改为.67138671875
      CsvLines[1] := CommaStr.CommaText;
      CsvLines.SaveToFile('test.csv');  //写入
      CsvLines.Free;
      CommaStr.Free;
    end;
      

  5.   

    控件栏里你找不到ADO吗
    什么语句要看你操作CSV的环境
      

  6.   

    不好意思,ADO有7个控件,加哪个呢?
      

  7.   

    这个你单独学习一下ADO控件 或者用8楼的代码
      

  8.   

    楼主可以在delphi借助sql来取excel数据select * from 
    opendatasource('microsoft.jet.oledb.0','data source="e:\test.xls";user id=admin;password=;extended properties=excel5.0')...sheet1$
      

  9.   

    ado 连接 csv 只支持ansi格式
    但大部分csv是utf-8格式啊............
      

  10.   

    查是很方便,但是修改保存就麻烦:
    这是微软的官方解释用ADO/ODBC操作csv,excel文件:
    报“该 ISAM 不支持在链接表中更新数据”错误:
    出现此问题的原因 UPDATE 和 DELETE ODBC 驱动程序不允许 SQL 语句。
    ODBC 文本文件驱动程序不支持 DELETE 和 UPDATE 语句,由于 ODBC 依赖唯一的键索引,
    以确定哪条记录来更新或删除。 文本文件没有这样的索引 ;
    因此,只允许修改新添加记录使用 INSERT 语句没有 DELETE 或 UPDATE 语句。
      

  11.   

    直接用 Memo.loadfromFile 就可以了
    或者 用 ADO .