我想搜索ini中字符串或文本旁边的文字并将其复制或直接从TINI
读取到TEdit
。
即
[Section]
Indent=AA1:BB2ac:CC35sda:DDWord`
我想在TEdit
中显示CC旁边的文字,即35sda。
我尝试了copy
功能,但没有尝试pos
和posex()
功能。
谢谢。
答案 0 :(得分:3)
这只是一个基本的字符串解析问题,例如Pos()
,PosEx()
和Copy()
,例如:
Ini := TMemIniFile.Create('file.ini');
try
S := Ini.ReadString('Section', 'Indent', '');
StartIdx := Pos(':CC', S) + 3;
EndIdx := PosEx(':', S, StartIdx);
Edit1.Text := Copy(S, StartIdx, EndIdx - StartIdx);
finally
Ini.Free;
end;
或者,使用TStringHelper
:
Ini := TMemIniFile.Create('file.ini');
try
S := Ini.ReadString('Section', 'Indent', '');
StartIdx := S.IndexOf(':CC') + 3;
EndIdx := S.IndexOf(':', StartIdx);
Edit1.Text := S.Substring(StartIdx, EndIdx - StartIdx);
finally
Ini.Free;
end;
或者,您可以使用TStringList
来帮助您解析,例如:
Ini := TMemIniFile.Create('file.ini');
try
SL := TStringList.Create;
try
SL.Delimiter := ':';
SL.StrictDelimiter := True;
SL.DelimitedText := Ini.ReadString('Section', 'Indent', '');
Edit1.Text := Copy(SL[2], 3, MaxInt);
// or:
// Edit1.Text := SL[2].Substring(2);
finally
SL.Free;
end;
finally
Ini.Free;
end;