平臺:Lazarus 1.1,FreePascal 2.7.1,Win 7 32位。遍歷子串的多個實例的字符串 - freepascal或delphi
我有一個字符串值,如下所示:
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]。
我的問題:請如何調整上述代碼以實現此目的?
你有使用方括號還是你願意改變那部分? – jachguate
rposex是FPC唯一順便說一句,雖然Synapse'synautil也包含它們 –