41 lines
1.8 KiB
Text
41 lines
1.8 KiB
Text
local fn CollapseString( inString as CFStringRef ) as CFStringRef
|
|
CFMutableStringRef outString = fn MutableStringWithCapacity(0)
|
|
long index
|
|
unichar prevChar = 0, currChar
|
|
|
|
for index = 0 to len(inString) - 1
|
|
currChar = fn StringCharacterAtIndex( inString, index )
|
|
if ( currChar != prevChar ) then MutableStringAppendFormat( outString, @"%C", currChar )
|
|
prevChar = currChar
|
|
next
|
|
end fn = outString
|
|
|
|
window 1, @"Collapse String", (0,0,600,300)
|
|
|
|
CFStringRef string, collapsedString
|
|
|
|
string = @""
|
|
collapsedString = fn CollapseString( string )
|
|
printf @"<<<%@>>> %ld\n<<<%@>>> %ld\n",string,len(string),collapsedString,len(collapsedString)
|
|
|
|
string = @"\"If I were two-faced, would I be wearing this one?\" --- Abraham Lincoln "
|
|
collapsedString = fn CollapseString( string )
|
|
printf@"<<<%@>>> %ld\n<<<%@>>> %ld\n",string,len(string),collapsedString,len(collapsedString)
|
|
|
|
string = @"..1111111111111111111111111111111111111111111111111111111111111117777888"
|
|
collapsedString = fn CollapseString( string )
|
|
printf@"<<<%@>>> %ld\n<<<%@>>> %ld\n",string,len(string),collapsedString,len(collapsedString)
|
|
|
|
string = @"I never give 'em hell, I just tell the truth, and they think it's hell. "
|
|
collapsedString = fn CollapseString( string )
|
|
printf@"<<<%@>>> %ld\n<<<%@>>> %ld\n",string,len(string),collapsedString,len(collapsedString)
|
|
|
|
string = @" --- Harry S Truman "
|
|
collapsedString = fn CollapseString( string )
|
|
printf@"<<<%@>>> %ld\n<<<%@>>> %ld\n",string,len(string),collapsedString,len(collapsedString)
|
|
|
|
string = @"\"AAAAAll that glitters is not goldDDDD.\" - William Shakespeare"
|
|
collapsedString = fn CollapseString( string )
|
|
printf@"<<<%@>>> %ld\n<<<%@>>> %ld\n",string,len(string),collapsedString,len(collapsedString)
|
|
|
|
HandleEvents
|