procedure TFrm_GPRSmain.Lv_RecDetailChange(Sender: TObject;
  Item: TListItem; Change: TItemChange);
var
  SaveCount: TextFile;
  i: integer;
  begin
     if Lv_RecDetail.Items.Count > strtoint(Edit_Recvcount.Text) then
     begin
          if FileExists('c:\RECIEVEDATA\(datetimetostr(now).txt') then
             AssignFile(SaveCount,'c:\RECIEVEDATA\(datetimetostr(now).txt')
          else
             CreateDir('c:\RECIEVEDATA\(datetimetostr(now).txt');
             AssignFile(SaveCount,'c:\RECIEVEDATA\(datetimetostr(now).txt');
          try
             for i:= 0 to Lv_RecDetail.Items.Count - 1 do
                Append(SaveCount);
                Writeln(SaveCount,Lv_RecDetail.Items.Item[i]);          //保存2000条记录
          //Lv_RecDetail.Clear;
          finally
             CloseFile(SaveCount);
     end;
  end;
  Lv_RecDetail.Clear;
end;
这段代码的功能是要将Listview中的数据保存成文本文件,可提示有Illegal type in Write/Writeln statement这样的错误,请问各位大虾,要怎么改呀,谢谢!!!!

解决方案 »

  1.   

    你的循环,写的不对吧,注意加上begin..endfor i:= 0 to Lv_RecDetail.Items.Count - 1 do
    begin
      Append(SaveCount);
      Writeln(SaveCount,Lv_RecDetail.Items.item[i].Caption;  for j:=0 to Lv_RecDetail.Items.item[i].subitems.count -1 
        Write(SaveCount,Lv_RecDetail.Items.item[i].subitems.string[j];end;
      

  2.   

    当TListView为报表模式时,列表项,即TListItem第一列是ListItem.Caption
    第二列及以后,是在ListItem.subitems中,要注意这一点