2017-07-10 44 views
1

我正在製作一個簡單的腳本,用於對用戶正在處理的腳本進行版本升級。該腳本應檢查最新版本的當前工作文件夾,並增加1。查找具有最高版本號的數組中的字符串

版本下面是我使用的文件夾中的一個例子,這是按名稱排序。

>  TES_DAS_010_COMP_ARTIST_v001_01.comp 
>  TES_DAS_010_COMP_ARTIST_v005_01.comp 
>  TES_DAS_010_COMP_ESKI_v002_01.comp 
>  TES_DAS_010_COMP_ESKI_v004_01.comp 
>  TES_DAS_010_COMP_ESKI_v004_02.comp 
>  TES_DAS_010_COMP_ESKI_v004_03.comp 
>  TES_DAS_010_COMP_ESKI_v006_01.comp 
>  TES_DAS_010_COMP_ESKI_v007_01.comp 
>  TES_DAS_010_COMP_NEWGUY_v008_01.comp 
>  TES_DAS_010_COMP_NEWGUY_v003_01.comp 

現在我有用戶ESKI將要版本升級。所以我需要找到一種方法來確定最新版本和增量。 在此示例中,當前版本爲「TES_DAS_010_COMP_NEWGUY_v008_01.comp」。

我怎樣可以針對哪些文件是最新的,所以我可以做一個名爲「TES_DAS_010_COMP_ESKI_v009_01.comp」新版本

+0

似乎你也有子版本。他們有用嗎?如果這是全部自動生成的,您可以查看創建的最新日期。 –

+0

沒有顛覆不重要。市長版本是我正在追求的。 – eski

+0

不是一個壞主意,它們都是由腳本創建的,所以理論上它們都應該有正確的時間戳。我會感覺最好有手動強制檢查.. :) – eski

回答

2

只是爲了什麼,我會做一個基本的指導,也許我失去了一些東西,但這似乎只是一個標準循環轉換和比較檢查的權利?如果我在這裏錯過了一個複雜的部分,請原諒我。

迭代通過與循環數組,找到indexof版本號的不斷開始索引,也許用「_V」作爲搜索條件,然後採取串的substring開始你的新的計算開始的indexOf和結束在3個字符後,將三個字符串解析/轉換爲數字,將其存儲在比較變量中,並檢查循環的每次迭代是否大於當前存儲的最大值。一旦你完成了你的編號,你可以使用linq來做一個非常小的代碼塊。

+0

這個應該可以,我只是想要解決這個問題.. :) – eski

+0

不,實際上..如果我能夠理清最高版本並獲取整個字符串名稱,那將是非常棒的。猜測我正在尋找一種方法來做到這一點。大概把它放在2列數組和按版本排序..? – eski

+0

如果您只需要最高版本的字符串 - 當您在循環中存儲/檢查比較變量時,您可以將整個字符串存儲在其他變量中,或者將比較變量作爲字典或其他構造並存儲當前您正在解析的最高比較版本號,然後您可以存儲整個字符串本身,也可以存儲最高的數組索引,然後在使用它時查看。如果你希望它是可排序的,那麼你可以重新創建陣列,因爲你正在使用版本列進行解析來進行排序。 –