skippynz Posted May 29, 2009 Share Posted May 29, 2009 Ive got my script working ok but want to tidy it up a bit - ive been told about regular expressions but not sure where to start - can someone help me with this ?TIACraigCODE_DateLongToShort('Sunday, 14 June 2009)#Region - LONGDATE FORMAT TO SHORTDATEFunc _DateLongToShort($LONG_DATE_FORMAT) Select Case StringInStr($LONG_DATE_FORMAT, 'January') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' January ', ',01,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'February') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' February ', ',02,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'March') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' March ', ',03,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'April') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' April ', ',04,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'May') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' May ', ',05,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'June') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' June ', ',06,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'July') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' July ', ',07,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'August') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' August ', ',08,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'September') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' September ', ',09,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'October') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' October ', ',10,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'November') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' November ', ',11,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) Case StringInStr($LONG_DATE_FORMAT, 'December') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' December ', ',12,') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) EndSelect If StringLeft($SHORT_DATE_FORMAT, 1) = '/' Then $SHORT_DATE_FORMAT = StringTrimLeft($SHORT_DATE_FORMAT, 1) EndIf Return ($SHORT_DATE_FORMAT)EndFunc ;==>_DateLongToShort Link to comment Share on other sites More sharing options...
skippynz Posted June 4, 2009 Author Share Posted June 4, 2009 sorry for the delay in replying - been a bit hectic - yep you were right about declaring the vars earlier - thanks for the code below that helps to tidy up my script nicely. First of all, you left your quotes open in Line 1. Second, you haven't declared any of your variables before using them, but I suppose you may have done that in an unposted portion of the script. Lastly, you should use Scite's Tidy function. Open your script in Scite and press "Ctrl+T", or select "Tidy" from the "Tools" menu. I don't know RegEx so I can't help you with that. I can say that if this was my script I would've used two arrays for the months and do the StringReplace in a For...Next Loop to avoid the large Select...Case. EDIT: Here is the code I had in mind. I added a Message Box to make sure it worked. I also declared the variables in the first line so the Message Box would work. Local $LONG_DATE_FORMAT, $SHORT_DATE_FORMAT _DateLongToShort('Sunday, 14 June 2009') MsgBox(0, "Test", $SHORT_DATE_FORMAT) Func _DateLongToShort($LONG_DATE_FORMAT) Local $array1[12] = ['January ', 'February ', 'March ', 'April ', 'May ', 'June ', 'July ', 'August ', 'September ', 'October ', 'November ', 'December '] Local $array2[12] = [',01,', ',02,', ',03,', ',04,', ',05,', ',06,', ',07,', ',08,', ',09,', ',10,', ',11,', ',12,'] For $X = 0 To 11 $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, $array1[$X], $array2[$X]) Next $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ',', '/') $LONG_DATE_FORMAT = StringReplace($LONG_DATE_FORMAT, ' ', '') $SHORT_DATE_FORMAT = StringRight($LONG_DATE_FORMAT, 10) If StringLeft($SHORT_DATE_FORMAT, 1) = '/' Then $SHORT_DATE_FORMAT = StringTrimLeft($SHORT_DATE_FORMAT, 1) Return ($SHORT_DATE_FORMAT) EndFunc ;==>_DateLongToShort Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now