查找并复制字符串旁边的文本

Finding and copy a text next to a string

我想搜索写在字符串或 ini 中文本旁边的文本并将其复制或直接从 TINI 读取到 TEdit

[Section]
Indent=AA1:BB2ac:CC35sda:DDWord`

我想在 TEdit 中显示 CC 旁边写的文本,即 35sda。

我尝试了 copy 函数,但没有尝试 posposex() 函数。 谢谢。

这只是基本的字符串解析问题,例如Pos(), PosEx(), and 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;