用 delphi读csv文件,

weizhixun 2010-11-29 10:18:12
请高手看看到底是什么问题,读不出来数据啊,用记事本打开看明明是三条记录,可循环了5次。不明白问题到底出在哪

type
sjjl3=record
sj:string[8];
rq:string[10];
yl:integer;
end;

var
zcxx1:sjjl3;


AssignFile(F1,'W1.csv');
Reset(F1);
seek(F1,2); //从第二行读起
while not(eof(F1)) do
begin
read(F1,zcxx1);
......
end
...全文
557 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
weizhixun 2010-12-02
  • 打赏
  • 举报
回复
解决了,谢谢大家,给分
mjp1234airen4385 2010-12-01
  • 打赏
  • 举报
回复
麻烦了,还要编码转换的呀。
把读出的数据用这个函数转换试试。
UTF8ToAnsi(Value);
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
找到原因了,可能是因为这个CSV文件是unicode格式写的,请问这应该怎么读?
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
按14楼的做了,但只读出一个“?”不明白啊
一剑飘雪 2010-11-30
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
var
strlist: TStringList;
begin
strlist := TStringList.Create;
try
strlist.LoadFromFile('c:/test.csv');
memo1.Lines.AddStrings(strlist);
finally
strlist.Free;
end;
end;

方法很多,网上随便找找就行了。上面这个我已经测试过了可以读出来,如果还不行,那就是你的delphi版本问题
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
急啊急啊,请高手们看看啊
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
有人知道可多加分
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
Valuefromindex 是什么啊?
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
用7楼的方法有三条记录,可是却循环了7次为什么?高手帮帮忙吧
weizhixun 2010-11-30
  • 打赏
  • 举报
回复
7楼的,这段代码试过了,但提示undeclared indentifier :Valuefromindex我用的是delphi 7
weizhixun 2010-11-29
  • 打赏
  • 举报
回复
4楼的能说得具体点吗?在网上找了很多例子试了都读不出来。
一剑飘雪 2010-11-29
  • 打赏
  • 举报
回复
用stringgrid 或者AdvStringGrid 读呗
weizhixun 2010-11-29
  • 打赏
  • 举报
回复
用了1楼的方法没读出来加在memo中的中有一个?。用记事本打开CSV是这样的。
时间 日期 人员 托盘 线号 转子 定子
17:40 2010/11/27 00011 00027 00017 00040 21061
17:40 2010/11/27 00011 00027 00017 00040 21338
17:41 2010/11/27 00011 00027 00017 17492 19010

这样的CVS文件怎么读?急死了!!!!!!!!
xingyongjian 2010-11-29
  • 打赏
  • 举报
回复
F1:file of sjjl3;
mjp1234airen4385 2010-11-29
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
strlist: TStringList;
begin
strlist := TStringList.Create;
strlist.LoadFromFile('C:\text.csv');
memo1.Lines.AddStrings(strlist);
strlist.Free;
end;
kye_jufei 2010-11-29
  • 打赏
  • 举报
回复
最簡單的。。。


procedure TForm1.btn1Click(Sender: TObject);
var
CsvData: TStringList;
I: Integer;
begin
CsvData:= TStringList.Create;

try
CsvData.LoadFromFile('ee.csv');
for I := 0 to CsvData.Count -1 do
begin
mmo1.Lines.Add(Pchar(CsvData.ValueFromIndex[I]) + 11);
end;
finally
CsvData.Free;
end;

end;
weizhixun 2010-11-29
  • 打赏
  • 举报
回复
高手给看看吧读不出来快急死了

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧