Te ability to write inline C is powerful - noone will deny. A few questions with that point in ming: has anyone done work with WebServices server side? Has anyone done work with Database access such as ODBC? Thomas On 2/9/11 4:54 AM, "Ken Shmidheiser" <kshmidheiser@...> wrote: >This is more in keeping with RP's more robust extension checking: > >include "ConsoleWindow" > >BeginCFunction >CFStringRef CFStringCopyPathReplacingExtension( CFStringRef path, >CFStringRef oldExtension, CFStringRef newExtension ) { >CFStringRef out; >NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; >if ( [[[(NSString *)path pathExtension] lowercaseString] >isEqualToString:[(NSString *)oldExtension lowercaseString]] ) >{ >NSString *temp = [[(NSString *)path stringByDeletingPathExtension] >stringByAppendingPathExtension:(NSString *)newExtension]; >out = CFStringCreateCopy( kCFAllocatorDefault, (CFStringRef)temp ); >} >else >{ >out = CFStringCreateCopy( kCFAllocatorDefault, path ); >} >[pool drain]; >return out; >} >EndC >toolbox fn CFStringCopyPathReplacingExtension( CFStringRef path, >CFStringRef oldExtension, CFStringRef newExtension ) = CFStringRef > >local fn PrintCFString( string as CFStringRef ) >'~'1 >dim as Str255 s > >if ( string == 0 ) then exit fn >fn CFStringGetPascalString( string, @s, 256, _kCFStringEncodingMacRoman ) >print s >end fn > >// demo main > >dim as CFStringRef name >name = fn CFStringCopyPathReplacingExtension( @"file0.csv", @"csv", >@"abcd" ) // replaces >fn PrintCFString( name ) >CFRelease( name ) > >name = fn CFStringCopyPathReplacingExtension( @"file1.CSV", @"csv", >@"abcd" ) // replaces >fn PrintCFString( name ) >CFRelease( name ) > >name = fn CFStringCopyPathReplacingExtension( @"someDir/file2.csv", >@"csv", @"abcd" ) // replaces >fn PrintCFString( name ) >CFRelease( name ) > >name = fn CFStringCopyPathReplacingExtension( @"file3.txt", @"csv", >@"abcd" ) // no replacement >fn PrintCFString( name ) >CFRelease( name ) > >name = fn CFStringCopyPathReplacingExtension( @"file4", @"csv", >@"abcd" ) // no replacement >fn PrintCFString( name ) >CFRelease( name ) > >-- >To unsubscribe, send ANY message to: futurebasic-unsubscribe@... > >