Jag har följande lilla finfina funktion som byter ut otillåtna tecken, mot något som är tillåtet i filnamn.
'Funktion som byter ut otillåtna tecken. Ersätts med 'replacement'
function ReplaceCharachters(s, replacement)
dim re
set re = new regexp
re.pattern = "[*/\\;:?|]"
re.global = true
ReplaceCharachters = re.replace(s, replacement)
end function
Hur fixar man till den att även hantera radbrytningar? Dvs att dess byts ut.
'Funktion som byter ut otillåtna tecken. Ersätts med 'sReplacement'
function ReplaceCharachters(sString, sReplacement)
dim re, s
set re = new regexp
re.pattern = "[*/\\;:?|]"
re.global = true
s = re.replace(sString, sReplacement)
s = replace(s, chr(10), sReplacement)
s = replace(s, chr(13), sReplacement)
ReplaceCharachters = s
end function
Jag kan tycka RegEx, eftersom du redan har öppnat RegEx objektet så kan du lika väl använda den, men annars spelar det ingen större roll hur du gör det, det är inte direkt en prestanda fråga med en eller två extra replace. Kör på det du känner dig säker med.
vbCrLf är en konstant med värdet Chr(13) & Chr(10) (Carriage return och Line feed).
Det är exakt samma sak.
http://msdn.microsoft.com/en-us/library/hh277t8e(VS.85).aspx
'Funktion som byter ut otillåtna tecken. Ersätts med 'sReplacement'
function ReplaceCharachters(sString, sReplacement)
dim re, s
set re = new regexp
re.pattern = "[*/\\;:?|]"
re.global = true
s = re.replace(sString, sReplacement)
s = replace(s, VbCrLf, sReplacement)
ReplaceCharachters = s
end function
eller
'Funktion som byter ut otillåtna tecken. Ersätts med 'sReplacement'
function ReplaceCharachters(sString, sReplacement)
dim re, s
set re = new regexp
re.pattern = "[*/\\;:?|\n]"
re.global = true
s = re.replace(sString, sReplacement)
ReplaceCharachters = s
end function