文本中:
[fsdf][hrhrfsaf][gdsgdsg]這一行.....如何將上面的的字符串提取出“這一行.....”?
也就是說[]裡面的全部不要,包括[]自己也不要?我是菜鳥。莫見笑。謝謝!
[fsdf][hrhrfsaf][gdsgdsg]這一行.....如何將上面的的字符串提取出“這一行.....”?
也就是說[]裡面的全部不要,包括[]自己也不要?我是菜鳥。莫見笑。謝謝!
解决方案 »
- 昨天生日,忘散分了,今天补上100分
- 开发用Delphi的那个版本开发软件比较好?
- 停止服务器的时候出现‘Terminate Thread Timout’异常
- 關於SQL SERVER存儲過程!
- 问个简单的问题,大家可不要笑我,怎样得到一个文件夹的共享名?
- 想辞职,公司要交违约金,怎么办?
- 我的困惑就是你的分数,help me!!!
- 請問可以用純delphi做出像 網站bbs論壇或 NOTES中電子公告欄的樣子嗎?? 高手給我建議建議....
- 怎么D版的Delphi6在调试Dll时,断点停不住???
- 各位朋友谁知道,TurboPower 公司的infopower 2000,和1stclass 2000 pro 的注册码? 程序我有,可以发给你们。
- dbchart组件的困惑。为什么出现莫名其妙的错误,高手帮忙啊,送分。
- 求D8下的第三方组件,就像以前D6下的EhLib或RxLib
function GetStr(src: string): string;
var
SL: TStringLsit;
begin
SL := TStringList.Create;
try
Text := StringReplace(src, ']', #13#10, [rfReplaceAll]);
result := SL[SL.count -1];
finally
SL.Free;
end;
end;
mString: string;
mLeft: string = '[';
mRight: string = ']'
): string;
var
I: Integer;
begin
Result := '';
while mString <> '' do
begin
I := Pos(mLeft, mString);
if I > 0 then
begin
Result := Result + Copy(mString, 1, I - 1);
Delete(mString, 1, I - 1);
Delete(mString, 1, Pos(mRight, mString));
end else
begin
Result := Result + mString;
Break;
end;
end;
end; { DeleteQuoted }procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := DeleteQuoted(Edit1.Text);
end;
var
ListString : TStringList;
Indexof : Integer;
begin
ListString:=TStringList.Create;
ListString.LoadFromFile('C:/123.txt');
Indexof:=ListString.IndexOf('[fsdf][hrhrfsaf][gdsgdsg]');
if Indexof >=0 then
begin
ListString.Delete(Indexof);
ListString.SaveToFile('C:/123.txt');
end;
end;
function TForm1.getcorresponding(tmp:string;nPos:integer):Integer;
var
nPos1,nPos2:integer;
begin
getNext := 0;
nPos1 := PosEx('[',tmp,nPos + 1);
nPos2 := PosEx(']',tmp,nPos + 1);
if (nPos1 > 0 ) and (nPos1 < nPos2) then
begin
getNext := nPos2;
while (nPos1 >0) and (nPos2 >nPos1) do
begin
nPos1 := PosEx('[',tmp,nPos2 + 1);
nPos2 := PosEx(']',tmp,nPos2 + 1);
if (nPos1 =0) or (nPos1 > nPos2) then
begin
if nPos2 > 0 then
getNext := nPos2;
break;
end;
end;
end
else
getNext := nPos2;
end;
procedure TForm1.deletestr1(var tmp:string);
var
nPos1,nPos2:integer;
begin
nPos1 := PosEx('[',tmp,0);
while (nPos1 >0) do
begin
nPos2 := getcorresponding(tmp,nPos1);
if nPos2 >nPos1 then
begin
delete(tmp,nPos1,nPos2 - nPos1 + 1);
nPos1 := PosEx('[',tmp,0);
end
else
break;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var tmp :string;
begin
tmp := edit1.Text;
deletestr(tmp);
edit3.Text := tmp;
end;