procedure TForm1.FormCreate(Sender: TObject);
var
  List: TStringList;
  NewItem: TListItem;
  I: Integer;
begin
  NewItem := nil;  ListView1.Items.Clear;
  List := TStringList.Create;
  try
    //读取文件中的内容到List
    List.LoadFromFile (
      sysutils.ExtractFilePath (Application.ExeName) + 'Items.txt');
    for I := 0 to List.Count - 1 do //遍历List里的每一段字符串
      if List [I][1] = #9 then     //这里不是很明白#9是什么意思还有
                                   //List[I][1]是指的当前行的第1个子还
                                   //是第2个子
        NewItem.SubItems.Add (Trim(List [I]))  //将这行字符串添加到
                                               //NewItem里
      else if List [I][1] = '@' then
        NewItem.ImageIndex := StrToIntDef (List [I][2], 0)
      else
      begin
        // 将NewItem添加到ListView里
        NewItem := ListView1.Items.Add;
        NewItem.Caption := List [I];
      end;//for
  finally
    List.Free;
  end;
end;

解决方案 »

  1.   

    哦谢谢另一个问题
    List [I][1]是指当前前行的第1个字符吗?List对每一行是按一个字母一个字母的读还是一个字符串一个字符串的读?
      

  2.   

    List[I][1]应该是指的当前行的第2个字符,[0]才是第一个字符List对每一行对应的是一个内存地址,而这个内存地址所指向的内容为一个字符串
      

  3.   

    如果说是第2个字符那就更说不过去了,我看了那个txt文件判断的Tab,@什么的都是每一行的第1个呀而且我把List[i][1]这里改成List[i][0]根本就不让运行了