61 lines
1.5 KiB
Plaintext
61 lines
1.5 KiB
Plaintext
include "NSLog.incl"
|
|
include resources "DaysOfWeek.txt"
|
|
|
|
local fn DaysOfWeek as CFArrayRef
|
|
CFURLRef url
|
|
CFStringRef string
|
|
CFArrayRef weeks = NULL
|
|
|
|
url = fn BundleURLForResource( fn BundleMain, @"DaysOfWeek", @"txt", NULL )
|
|
string = fn StringWithContentsOfURL( url, NSUTF8StringEncoding, NULL )
|
|
if ( string )
|
|
weeks = fn StringComponentsSeparatedByCharactersInSet( string, fn CharacterSetNewlineSet )
|
|
end if
|
|
end fn = weeks
|
|
|
|
local fn MinAbbreviationLength( week as CFStringRef ) as long
|
|
CFArrayRef days
|
|
CFStringRef day1, day2, abbr
|
|
long count, length, minLen, index1, index2
|
|
|
|
minLen = 1
|
|
days = fn StringComponentsSeparatedByString( week, @" " )
|
|
if ( len( days ) == 7 )
|
|
count = len( days )
|
|
for index1 = 0 to count - 1
|
|
day1 = days[index1]
|
|
length = len( day1 )
|
|
abbr = left( day1, minLen )
|
|
for index2 = 0 to count - 1
|
|
if ( index2 == index1 ) then continue
|
|
day2 = days[index2]
|
|
while ( fn StringHasPrefix( day2, abbr ) )
|
|
minLen++
|
|
if ( minLen > length ) then break
|
|
abbr = left( day1, minLen )
|
|
wend
|
|
next
|
|
next
|
|
end if
|
|
end fn = minLen
|
|
|
|
void local fn Abbreviations
|
|
CFArrayRef weeks
|
|
CFStringRef week
|
|
|
|
weeks = fn DaysOfWeek
|
|
if ( weeks )
|
|
for week in weeks
|
|
if ( len(week) )
|
|
NSLog(@"%ld\t%@",fn MinAbbreviationLength( week ),week)
|
|
else
|
|
NSLog(@"NULL")
|
|
end if
|
|
next
|
|
end if
|
|
end fn
|
|
|
|
fn Abbreviations
|
|
|
|
HandleEvents
|