| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4220 人关注过本帖, 1 人收藏
标题:请教.CSV记录文件的读取问题
只看楼主 加入收藏
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:0 
procedure TForm1.btn1Click(Sender: TObject);
var
  CsvData: TStringList;
  Arry1,Arry2: array[0..20] of Char;                       //两个字符串数组,用来保存结果
begin
  CsvData:= TStringList.Create;

  try
    CsvData.LoadFromFile('d:\ee.csv');

    lstrcpyn(Arry1,PChar(CsvData.Strings[CsvData.Count - 1]),11);            //拷贝最后一行的前10个字符。
    lstrcpyn(Arry2,PChar(CsvData.Strings[CsvData.Count - 1]) + 11,11);       //拷贝最后一行的从第12个字符开始的10个字符。
    mmo1.Lines.Add(Arry1);                                                   //输出结果。
    mmo1.Lines.Add(Arry2);
  finally
    CsvData.Free;
  end;
end;

我昨天也犯了个大错误,Pchar(Pchar(CsvData.ValueFromIndex[I]) + 10)^:= char(0);这句本意是想将一行的原始数据中分,可犯了大忌。
因为这样会使delphi的字符串分配回收函数出错。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-12 13:01
yalewang
Rank: 2
等 级:论坛游民
帖 子:125
专家分:35
注 册:2010-4-15
收藏
得分:0 
你好棒,我运行了一下,完全读出了数据。第一个数据前多了一个空格。
加到定时器中完全同步。
lstrcpyn(Arry1,PChar(CsvData.Strings[CsvData.Count - 1]),12);   
lstrcpyn(Arry2,PChar(CsvData.Strings[CsvData.Count - 1]) + 12,11);
再次感谢。
2010-07-12 14:30
快速回复:请教.CSV记录文件的读取问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054214 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved