002~|通海~|2004-09-08~|2000~|7~|1~|2~|3~|4~|5~|6~|7~|8~|9~| 10~|11~|12~|14~|14~|15~|16~|17~|18~|19~|20~|21~|22~|23~|24~|25~| 26~| 27~|,是一个txt文件里面的内容,我想分别取出开始的几个值:002,2004-09-08,2000,7我想把这个值分别取出来.要去和数据库中的数据比较判断是否重复.其~|是我写文件个数据间的分割符.请高手指教.特急!
调试欢乐多
str,strtemp : string;
begin
str := '002~|通海~|2004-09-08~|2000~|7~|1~|2~|3~|4~|5~|6~|7~|8~|9~| 10~|11~|12~|14~|14~|15~|16~|17~|18~|19~|20~|21~|22~|23~|24~|25~| 26~| 27~|';for i := 1 to length(str) do
begin
if str[i] = '~' then
begin
//判断strTemp是否在数据库中
strTemp := '';
end
else
begin
if str[i] <> '|' then
strTemp := strTemp + str[i];
end;
end;
很简单的啊!
你可以自己看一下!
pos('~|',str)返回对应的第一个位置!
然后你取得之后对它判断啊!
str = '002~|通海~|2004-09-08~|2000~|7~|1~|2~|3~|4~|5~|6~|7~|8~|9~| ' +
'10~|11~|12~|14~|14~|15~|16~|17~|18~|19~|20~|21~|22~|23~|24~|25~| 26~| 27~|';
var
Txt: string;
s: TStringList;
begin
Txt := StringReplace(str, '~|', ',', [rfReplaceAll]);
s := TStringList.Create;
s.CommaText := Txt;
ShowMessage(s.Strings[3]); //想取第几个就取第几个
end;
i, n: Integer;
str,strtemp : string;
begin
n := 0;
str := '002~|通海~|2004-09-08~|2000~|7~|1~|2~|3~|4~|5~|6~|7~|8~|9~| 10~|11~|12~|14~|14~|15~|16~|17~|18~|19~|20~|21~|22~|23~|24~|25~| 26~| 27~|';for i := 1 to length(str) do
begin
if str[i] = '~' then
begin
//判断strTemp是否在数据库中
strTemp := '';
inc(n);
end
else
begin
if str[i] <> '|' then
strTemp := strTemp + str[i];
end;
if n = 3 then
Break;
end;
luke5678(奇异) 的方法不错学习了知识!!
学习!
----------------------------------------------------------------
花自飘零水自流,一种相思,两处闲愁。
此情无计可消除,才下眉头,又上心头。
----------------------------------------------------------------
var
j,i:integer;
begin
edit2.text:='';
j:=Length(edit1.Text );
for i:=0 to j do
begin
if edit1.Text[i] in ['~','|']=false then
edit2.Text :=edit2.text +edit1.Text[i]
else
begin
if edit2.text<>'' then
listbox1.Items.Add(edit2.text);
edit2.Text:='';
end;
end;
end;procedure TForm1.Button3Click(Sender: TObject);//檢測是否有重復,若重復則清除
var
ts: TStrings;
i: Integer;
begin
ts := TStringList.Create;
for i := 0 to ListBox1.Items.Count - 1 do
if ts.IndexOf(ListBox1.Items[i]) = - 1 then
ts.Append(ListBox1.Items[i]);
ListBox1.Items.Assign(ts);
ts.Free;
end;