var strList:TStringList;
FStr,iCount,PosStart,PosEnd:Integer;
ResultStr:Array[1..4] of String;
begin
strList:=TSTringList.Create;
strList.LoadfromFile('text.txt');
for iCount:=0 to strList.Count-1 do
begin
PosStart:=StrPos(',',strList.strings[iCount],1);
ResultStr[1]:=Copy(strList.strings[iCount],1,PosStart-1);
PosStart:=StrPos(',',StrList.Strings[icount],PosStart+1);
ResultStr[2]:=Copy(strList.strings[iCount],PosStart+1);
//依此类推
with query1 do
begin
append;
fieldbyname('id').AsString:=ResultStr[1];
.....
post;
end;
end;
Query1.ApplyUpdates;//批量更新 注意把Query1打开前设CacheUpdate:=true;function StrPos(const FindString, SourceString: string; StartPos: Integer): Integer;
asm //find http://www......
PUSH ESI
PUSH EDI
PUSH EBX
PUSH EDX
TEST EAX,EAX
JE @@qt
TEST EDX,EDX
JE @@qt0
MOV ESI,EAX
MOV EDI,EDX
MOV EAX,[EAX-4]
MOV EDX,[EDX-4]
DEC EAX
SUB EDX,EAX
DEC ECX
SUB EDX,ECX
JNG @@qt0
XCHG EAX,EDX
ADD EDI,ECX
MOV ECX,EAX
JMP @@nx
@@fr: INC EDI
DEC ECX
JE @@qt0
@@nx: MOV EBX,EDX
MOV AL,BYTE PTR [ESI]
@@lp1: CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JE @@qt0
CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JE @@qt0
CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JE @@qt0
CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JNE @@lp1
@@qt0: XOR EAX,EAX
@@qt: POP ECX
POP EBX
POP EDI
POP ESI
RET
@@uu: TEST EDX,EDX
JE @@fd
@@lp2: MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JE @@fd
MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JE @@fd
MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JE @@fd
MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JNE @@lp2
@@fd: LEA EAX,[EDI+1]
SUB EAX,[ESP]
POP ECX
POP EBX
POP EDI
POP ESI
end;
FStr,iCount,PosStart,PosEnd:Integer;
ResultStr:Array[1..4] of String;
begin
strList:=TSTringList.Create;
strList.LoadfromFile('text.txt');
for iCount:=0 to strList.Count-1 do
begin
PosStart:=StrPos(',',strList.strings[iCount],1);
ResultStr[1]:=Copy(strList.strings[iCount],1,PosStart-1);
PosStart:=StrPos(',',StrList.Strings[icount],PosStart+1);
ResultStr[2]:=Copy(strList.strings[iCount],PosStart+1);
//依此类推
with query1 do
begin
append;
fieldbyname('id').AsString:=ResultStr[1];
.....
post;
end;
end;
Query1.ApplyUpdates;//批量更新 注意把Query1打开前设CacheUpdate:=true;function StrPos(const FindString, SourceString: string; StartPos: Integer): Integer;
asm //find http://www......
PUSH ESI
PUSH EDI
PUSH EBX
PUSH EDX
TEST EAX,EAX
JE @@qt
TEST EDX,EDX
JE @@qt0
MOV ESI,EAX
MOV EDI,EDX
MOV EAX,[EAX-4]
MOV EDX,[EDX-4]
DEC EAX
SUB EDX,EAX
DEC ECX
SUB EDX,ECX
JNG @@qt0
XCHG EAX,EDX
ADD EDI,ECX
MOV ECX,EAX
JMP @@nx
@@fr: INC EDI
DEC ECX
JE @@qt0
@@nx: MOV EBX,EDX
MOV AL,BYTE PTR [ESI]
@@lp1: CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JE @@qt0
CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JE @@qt0
CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JE @@qt0
CMP AL,BYTE PTR [EDI]
JE @@uu
INC EDI
DEC ECX
JNE @@lp1
@@qt0: XOR EAX,EAX
@@qt: POP ECX
POP EBX
POP EDI
POP ESI
RET
@@uu: TEST EDX,EDX
JE @@fd
@@lp2: MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JE @@fd
MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JE @@fd
MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JE @@fd
MOV AL,BYTE PTR [ESI+EBX]
CMP AL,BYTE PTR [EDI+EBX]
JNE @@fr
DEC EBX
JNE @@lp2
@@fd: LEA EAX,[EDI+1]
SUB EAX,[ESP]
POP ECX
POP EBX
POP EDI
POP ESI
end;
s: string;
s1: TStringList;
s:= '要转换的字符串';
s1.commatext:= s;
s1的strings即包含以','为分隔符的字符串。
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, ComCtrls;type
TForm8 = class(TForm)
RichEdit1: TRichEdit;
Button1: TButton;
Table1: TTable;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form8: TForm8;
const space='|';
implementation{$R *.DFM}
Function RegulateStr(aString:String;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
if(Flag=True)then
begin
Mystr:=Mystr+TempStr;
Flag:=False;
end;
end;
if MyStr[Length(MyStr)]>=SepChar then
MyStr:=MyStr+SepChar;
RegulateStr:=MyStr;
end;
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;
Function GetSubStrNum(var aString:String;SepChar:String):Integer;
var
i:Integer;
StrLen:Integer;
Num:Integer;
begin
StrLen:=Length(aString);
Num:=0;
for i:=1 to StrLen do
if Copy(aString,i,1)=SepChar then
Num:=Num+1;
GetSubStrNum:=Num;
end;
procedure TForm8.FormCreate(Sender: TObject);
begin
richedit1.Lines.LoadFromFile('dk.txt');
end;procedure TForm8.Button1Click(Sender: TObject);
var
i,j:Integer;
MyLine:String;
begin
with table1 do
begin
Open;
for i:=0 to richedit1.Lines.Count-1 do
begin
append;
MyLine:=RegulateStr(richedit1.Lines[i],Space);
for j:=1 to getsubstrnum(myline,space) do
begin
fields[j-1].asstring:=GetSubStr(MyLine,Space);
end;
post;
end;
close;
end;
showmessage('数据装入成功');
close;
end;end.
请问高手们怎么联系。
小弟e-mail:
[email protected]