平台:Lazarus 1.1、FreePascal 2.7.1、Win 7 32 位。
我有一个字符串值如下:
FileName[12345][45678][6789].jpg
默认情况下(假设这是默认行为 0),我的程序当前从文件名最右侧的最后一对方括号中提取最后一组数字,即 6789。它使用以下代码执行此操作:
if chkbxOverrideUniqueID.Checked then
IDOverrideValue := StrToInt(edtToggleValue.Text);
// User is happy to find the right most unique ID
if not chkbxOverrideUniqueID.Checked then
LastSquareBracket := RPos(']', strFileName);
PreceedingSquareBracket := RPosEx('[', strFileName, LastSquareBracket) + 1;
strFileID := AnsiMidStr(strFileName, PreceedingSquareBracket, LastSquareBracket - PreceedingSquareBracket)
else // User doesn't want to find the rightmost ID.
// and now I am stuck!
但是,我现在为用户添加了一个选项来指定非默认行为。例如,如果他们输入“1”,则表示“从最右边的 ID 中查找第一个 ID”。例如 [45678],因为 [6789] 是默认行为 0,请记住。如果他们输入 2,我希望它找到 [12345]。
我的问题:请问如何调整上面的代码来实现这一点?