那个文本文件的只有可以分为120多块,每一块有明显的开始与结束的标志.总的文件的大概有2千多行,每一行一些内容以分号隔开,但是每隔的内容字符长度不相等,是参差不齐的.请问大虾们如何将这里面的部分内容挖掘出来并写入到一个SQL数据库表中.

解决方案 »

  1.   

    块与块之间有明显的开始与结束的标志,那块的读判断应该没什么问题如果每行都是数据表的内容,且都是是某一分隔符隔开,隔开的数据为字段内容,那不论字符长度是否相等,都很容易写到库中的.参考:
    http://topic.csdn.net/t/20060414/10/4686187.html
      

  2.   

    {ASourceStr:要分解的字符串,ABz:分解的标志}
    {例如 ASourceStr:='wwww##hao123##com';ABz:='##'}
    procedure GetStrings(var AStringList:TStringList;ASourceStr:string;ABz:String);
    var
      i:integer;
      Str:string;
      isTrue:Boolean;
    begin
      Str:= ASourceStr;
      isTrue:= True;
      try
        while isTrue do
        begin
           i:= 0;
           i:=pos(ABz,Trim(Str));
           if i > 0 then
           begin
             AStringList.Add(Copy(Str,1,i-1));
             Delete(Str,1,i+1);
             isTrue:= True;
           end
           else
           begin
             AStringList.Add(Str);
             isTrue:= False;
           end;
        end;
      except
        AStringList.Free;
      end;
    end;
    {调用如下}
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Str:string;
      MyList:TStringList;
      i:Integer;
      txtFile:TextFile;begin
      MyList:=TStringList.Create;
      Str:= 'wwww##hao123##com';
      try
        GetStrings(MyList,Str,'##');
        for i:= 0 to MyList.Count -1 do
        begin
          mmo1.Lines.Add(MyList.Strings[i]);
        end;
        MyList.Free;
      except
        MyList.Free;
      end;
    end;