怎样把用","号分割的文本导入Paradox表Table中?
如:
姓名,级别,工龄,赔缴,所得额,调增项目,调增额,扣除项目,扣除额,应税所得额,税率,速算扣除数,个人所得税
lll,科员,5-10 ,否,1450,0+0+0,0,800+102+70+0+0+0,972,    478.00,5%,0,     23.90 
我的程序如下
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j: integer;
 TextFileVar: TextFile;
 FileN, temp: string;
 StrLen, num: Integer;
   begin
     FileN := 'C:\My Documents\avglist.txt';
     if FileN = '' then exit;
     AssignFile(TextFileVar, FileN);
     Reset(TextFileVar);
     with Query1 do
     begin
       close;
       UnPrepare;
       sql.Clear;
       sql.Add('select * from sj');
       Prepare;
       open;
     end;
     while not SeekEof(TextFileVar) do
     begin
       Readln(TextFileVar, temp);
     //得到标记数
       StrLen := Length(temp);
       Num := 0;
       for i := 1 to StrLen do
         if Copy(temp, i, 1) = ',' then
           Num := Num + 1;       if pos(',', temp) > 0 then
       begin
         Query1.Append;
         for j := 0 to Num - 1 do
         begin
           Query1.Fields[j].AsString := copy(Temp, 1, pos(',', temp) - 1); //得到字段内容
           temp := copy(temp, pos(',', temp) + 1, length(temp) - pos(',', temp)); //去除上次降得到的内容
         end;
         Query1.Post;
       end;
       end;
       end;
end.
但最后一个字段"个人所得税"没有读入,请帮忙看一下.

解决方案 »

  1.   

    你想一下,逗号数比你要读入的文字个数什么关系,少一阿
    你上面写的代码复杂,实际不需要这样嘛
    var posi:integer;
    ..................
    while temp<>'' do
    begin
        Query1.Append;
        posi:=pos(',', temp);
        if posi>0 then
        begin
            Query1.Fields[j].AsString := copy(Temp, 1, posi- 1); 
            delete(temp,1,posi);////参数顺序不知道对不对,代码现写的,没装delphi,你自己改该吧
        end
        else
        begin
            Query1.Fields[j].AsString := copy(Temp, 1, length(temp)); 
            temp:='';
        end;
    end;
    以上代码都是随手写的,如果有错误自己更正吧
      

  2.   

    呵呵!这楼上的这么小气,只给人家读一行:)Var
      DbText:TextFile;
      .....
    Begin
      AssignFile(DbText,'c:\1.Text');
      Reset(DbText);
      Try
        While Not Eof(DbText) Do
          Begin
            ..........//楼上的内容
          End;
      Finally
        CloseFile(DbText);
      End;