K
Ken McLennan
G'day there One and All,
This latest query of mine will, I hope, find a more elegant method
than the one I'm now using.
My code processes a number of strings which relate to shift
starting times. They're in varied formats and my code tries to reduce
them to the same format for ease of processing. For instance, I might
have a time entered by my users as "6:00", "6am", or just plain "6" (I
need an appropriate shift end time to determine whether the latter is
"am" or "pm").
I have things working fairly well, and as part of the parsing of
the string I remove extraneous characters. What I want to do is to
remove every letter except an "a" or a "p" so that "6pm" becomes "6p",
and "6:00am On Call" becomes "6a". (In case you're wondering, before I
can do anything useful, the time string is attatched to a date and
converted to a standard date/time format as data type "date", not data
type "string").
I currently process it by referring each character in the string,
in turn, to this list:
"bcdefghijklmnoqrstuvwxyz"
with "instr(str_TESTSTR)" and removing anything that matches, but
this seems quite cumbersome and time consuming.
I have no clue when it comes to reg expressions, and don't even
know whether any such thing would be a useful technique in this
instance.
Is there some other way to do it, that my pedestrian grey matter
hasn't comprehended? Is there some way to stuff the above 24 char string
into a "replace" function, maybe?
My code will (eventually) be deployed across the state and there
is no possibility of having anything installed on the target machines so
extra functions via add-ins are out. I can only use what I manage to
stuff into a module via the VBE.
Surely there's a better way to do it than what I've come up with!
Thanks for listening.
This latest query of mine will, I hope, find a more elegant method
than the one I'm now using.
My code processes a number of strings which relate to shift
starting times. They're in varied formats and my code tries to reduce
them to the same format for ease of processing. For instance, I might
have a time entered by my users as "6:00", "6am", or just plain "6" (I
need an appropriate shift end time to determine whether the latter is
"am" or "pm").
I have things working fairly well, and as part of the parsing of
the string I remove extraneous characters. What I want to do is to
remove every letter except an "a" or a "p" so that "6pm" becomes "6p",
and "6:00am On Call" becomes "6a". (In case you're wondering, before I
can do anything useful, the time string is attatched to a date and
converted to a standard date/time format as data type "date", not data
type "string").
I currently process it by referring each character in the string,
in turn, to this list:
"bcdefghijklmnoqrstuvwxyz"
with "instr(str_TESTSTR)" and removing anything that matches, but
this seems quite cumbersome and time consuming.
I have no clue when it comes to reg expressions, and don't even
know whether any such thing would be a useful technique in this
instance.
Is there some other way to do it, that my pedestrian grey matter
hasn't comprehended? Is there some way to stuff the above 24 char string
into a "replace" function, maybe?
My code will (eventually) be deployed across the state and there
is no possibility of having anything installed on the target machines so
extra functions via add-ins are out. I can only use what I manage to
stuff into a module via the VBE.
Surely there's a better way to do it than what I've come up with!
Thanks for listening.