Michael Bahr
jedi at charm.net
Fri Sep 28 13:24:46 CDT 2007
Hi John, here is one way to do it (although there are many ways to get the same end result). Mind you this is air code but hopefully should be enough to get you going. You will need to create the main loop within your code. Create a list of all delimiters that are used in your CSV files such as delimiters = '%|*|$|@|!|#|&|^|_|-|,|.|;|:| ' then run through your CSV files line by line evaluating the line saving the line into an array thisarray = Split(line, delimiters) then run through the array performing a Ucase on the first letter of each word newline = "" For item=1 to ubound newline = newline & whatEverToCapFirstChar(item) Next item where ubound is the array size Now here are two scripts that do the same thing, one is Perl and the other is TCL. Both of these languages are open source and free and can be gotten at http://www.activestate.com/Products/languages.plex Perl: my $delimiters = '/:| |\%|\*|\$|\@|\!|\#|\&|^|_|-|,|\./'; my @test = ("John colby", "%idiotic_Field*name", "hey#hey#Hey,hello_world", "this#is_a_test_of_the-emergency-broadcast-system"); foreach my $item (@test) { my $temp = ""; my @list = split ($delimiters, $item); foreach my $thing (@list) { $temp .= ucfirst($thing); } print "$temp\n"; } Result d:\Perl>pascalcase.pl JohnColby IdioticFieldName HeyHeyHeyHelloWorld ThisIsATestOfTheEmergencyBroadcastSystem TCL: set delimiters {%|*|$|@|!|#|&|^|_|-|,|.|;|:|\ "} set test [list {John colby} {%idiotic_Field*name} {hey#hey#Hey,hello_world} {this#is_a_test_of_the-emergency-broadcast-system}] foreach item $test { set str "" set mylist [split $item, $delimiters] foreach thing $mylist { set s [string totitle $thing] set str "$str$s" } puts $str } Results D:\VisualTcl\Projects>tclsh pascalcase.tcl JohnColby IdioticFieldName HeyHeyHeyHelloWorld ThisIsATestOfTheEmergencyBroadcastSystem hth, Mike... > Folks, > > I am looking for a regex expression (preferably with explanation) for > taking > an expression and creating a camel case (or PascalCase) expression. > > I get CSV files with headers in them. All too often the eejits that > created > the databases they came from used embedded spaces or other special use > characters (!@#$%^&* etc) in their field names. I need to strip these > special characters out completely. I also need to upper case the valid > alpha character that follows any of these special characters. > > John colby becomes JohnColby > %idiotic_Field*name becomes IdioticFieldName > > Etc. > > It appears that Regex is the key (I am doing this in VB.Net) but until > today > I have never really tried to use RegEx and it ain't pretty! > > Any help in this would be much appreciated. > > John W. Colby > Colby Consulting > www.ColbyConsulting.com > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com >