[問題] 有辦法模糊比對取得檔案INDEX嗎?

作者: don750421 (1+1≠2)   2015-12-17 23:43:45
假設有數個檔案,要如何透過模糊比對取得檔案INDEX?
當然,一定會有以下保證規則:
1. 檔名長度一定相同
2. 檔案INDEX一定為兩碼數字
3. 檔案INDEX的位置一定相同
4. 檔案INDEX一定介於01~10
範例一:假設資料夾內有以下檔案
ABCAB01.txt ==> 01
ABCAC02.txt ==> 02
ABCAD05.txt ==> 05
範例二:假設資料夾內有以下檔案
ABCA401DF.txt ==> 01
ABCA802FV.txt ==> 02
ABCA905EF.txt ==> 05
範例三:假設資料夾內有以下檔案
ABCA401DF.txt ==> 01 這種就算是FAIL,
ABCA8G2FV.txt ==> ?? 因為只要其中一個無法取出。
ABCA905EF.txt ==> 05 則其他取出的就無參考意義
範例四:假設資料夾內有以下檔案
ABCA401DF.txt ==> 01 這種就算是FAIL,
ABCA824FV.txt ==> 24 因為上面一定有保證,檔案Index介於01~10,
ABCA905EF.txt ==> 05 則其他取出的就無參考意義
有想過或許正規表示法有辦法取得,但是要如何抓取到第N個字元的位置...
好像又是另一個問題@@...
作者: leicheong (睡魔)   2015-12-18 00:10:00
把字串中的數字換成N其他轉成T, "."看你要不要換,然後直接比較不行嗎?另外401DF那個看不懂為什麼會fail.要保證是01到10的話在檢查IsDigit時偷看下一個數字即可感覺當成2維的char array比較易處理.
作者: autumn10109   2015-12-18 09:24:00
905 ok但401 fail是還有其他規則嗎?
作者: Ammenze (藍天白雲)   2015-12-18 13:24:00
第三段應該是說3個檔案有一個抓不出正確規則的數字就整個3檔案都算fail吧
作者: Litfal (Litfal)   2015-12-18 23:24:00
這沒很難啊?跑兩層迴圈不就好了?
作者: don750421 (1+1≠2)   2015-12-19 10:23:00
兩層迴圈?每個資料內的檔案index也有可能出現在第1、2碼
作者: autumn10109   2015-12-19 11:41:00
所以是index位置根本不固定?但每次所有檔名的index必須在同個位置才ok
作者: Litfal (Litfal)   2015-12-19 13:55:00
第一層當然是跑所有檔案檔名,第二層看你是要用字串解析還是REGEX,分析出檔名內有幾個部位符合\d{2},例如ABC102就解析成list of <index,value> = {{3,10},{4,2}}再取所有FILE的某index都有值的,就是結果。當然可以在過程中優化減少運算量PS.我的index是指數字在檔名中的位置,跟你的INDEX不同

Links booklink

Contact Us: admin [ a t ] ucptt.com