i have folder lot of files, they're named based on pattern iterating number in it.
i'm trying save new files through vb.net. aim name highest number of folder +1
there looked on internet , found lot of things regex , linq helped me make following code :
if tmpfilename.contains("%num%") dim lastfileno integer = 1 dim tmpfname = dir(frmmain.savelocaltfpath & "*.docx") dim numbers() integer = regex.split(tmpfname, "(?<alpha>[\w-[0-9]]+)(?<num>[\d]+)").skip(1).select(function(s) integer.parse(s)).toarray each element in numbers if element > 0 , element < 999 , element > lastfileno lastfileno = element next until tmpfname = "" numbers = regex.split(tmpfname, "(?<alpha>[\w-[0-9]]+)(?<num>[\d]+)").skip(1).select(function(s) integer.parse(s)).toarray each element in numbers if element > 0 , element < 1000 , element > lastfileno lastfileno = element next tmpfname = dir() loop tmpfilename = tmpfilename.replace("%num%", lastfileno) end if but doesn't work expected. has first code in linq , in regex , i'm not used detect wrong in code. can give hint please?
thanks
i'm pretty sure regex wrong. split code little bit, create function pulls number filename. ex
function getnumberfromfilename(byval filename string) integer ' filename parameter, pull number , return end function then it'll easy test
console.writeline(getnumberfromfilename("jcr 2013-01 data.docx")) when got working, loop files highest number
dim lastfileno integer = 1 dim files() string = io.directory.getfiles(frmmain.savelocaltfpath, "*.docx") each file string in files dim number integer number = getnumberfromfilename(file) if number > 0 , number < 1000 , number > lastfileno lastfileno = number end if next
Comments
Post a Comment