非常感谢各位,但问题还是没有解决,我将的代码贴出来好了!
//去掉多余的分割符,规范字符串
Function RegulateStr(aString,Sepchar:String):String;
var
i,Num:Integer;
Flag:Boolean;
MyStr,TempStr:String;
begin
Flag:=False;//进行标志,去除多余的分割符
Num:=Length(aString);//计算aString串的长度
for i:=1 to Num do
begin
TempStr:=Copy(aString,i,1);//取aString串中的一字符
if TempStr<>SepChar then
begin
MyStr:=MyStr+TempStr;
Flag:=True;
end
else
begin
if (Flag=True) then
begin
Mystr:=Mystr+TempStr;
Flag:=False;
end;
end;
end;
if MyStr[Length(MyStr)]<>SepChar then //if MyStr[Length(MyStr)]>=SepChar then
MyStr:=MyStr+SepChar;
RegulateStr:=MyStr;
end;
//得到字符串中一个子串
//因要改变参数aString的值,所以将它用var定义.
Function GetSubStr(var aString:String; SepChar:String):String;
var
Mystr:String;
StrLen:Integer;
SepCharPos:Integer;
begin
StrLen:=Length(aString);
SepCharPos:=Pos(SepChar,aString);
//计算分割符在子串中的位置
MyStr:=Copy(aString,1,SepCharPos-1);
//将分割符前所有字符放到mystr串中
Delete(aString,1,SepCharPos);
//除去分割符和分割符前的子串
GetSubStr:=MyStr;
//返回一个字段
end;
//计算一个字符串要被分割成几个字段.
//参数:aString是所需分割的一个字符串,SepChar是分割符。
Function GetSubStrNum(aString:String; SepChar:String):Integer;
var
i:Integer;
StrLen:Integer;
Num:Integer;
begin
StrLen:=Length(aString);
Num:=0;
for i:=1 to StrLen do
begin
if Copy(aString,i,1)=SepChar then
Num:=Num+1;
end;
GetSubStrNum:=Num;
end;
//读Txt文件内容到数据库
procedure Read_TxtToTable(TableS : TADOTable; FileNameS, Space: string);
var
i,j:Integer;
MyLine,S, SS :String;
F: TextFile;
begin
TableS.Active := True;
AssignFile(F, FileNameS); //将 F 变量与指定文件关联
Reset(F); //打开文件
while not EOF(F) do
begin
Readln(F, MyLine); //读出第一行
TableS.Append;
SS := RegulateStr(MyLIne,Space);
for j:=1 to GetSubStrNum(SS,Space)-1 do //计算一个字符串要被分割成几个字段.
begin
s := GetSubStr(SS,Space); //得到字符串中一个子串
TableS.edit;
IF j = 1 then
begin
TableS.fields[2].aSstring := s;
end;
if j = 3 then
begin
TableS.fields[3].aSstring := s ;
end;
if j = 4 then
begin
TableS.fields[4].aSstring := S
end;
if j = 5 then
begin
TableS.fields[5].aSstring := s;
end;
if j = 9 then
begin
TableS.fields[6].aSstring := s;
end;
end;
TableS.post;
end;
CloseFile(F); //关闭文件
end;