1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
# ::utils::string::Surname
#
# Returns the surname of a player name.
#
proc ::utils::string::Surname {name} {
set idx [string first "," $name]
if {$idx > 0} { set name [string range $name 0 [expr {$idx - 1} ]] }
return $name
}
proc ::utils::string::CityName {siteName} {
regsub { [A-Z][A-Z][A-Z]$} $siteName "" siteName
return [string trim [::utils::string::Surname $siteName]]
}
# ::utils::string::Capital
#
# Returns a string with the first character capitalised.
#
proc ::utils::string::Capital {str} {
set s [string toupper [string index $str 0]]
append s [string range $str 1 end]
return $s
}
# PadLeft
#
# Given a string and a length, pads the string with padChar to have
# the required length.
#
proc ::utils::string::PadLeft {str length {padChar " "}} {
set s $str
for {set actual [string length $s]} {$actual < $length} {incr actual} {
append s $padChar
}
return $s
}
# Pad
#
# Same as PadLeft.
#
proc ::utils::string::Pad {str length {padChar " "}} {
return [::utils::string::PadLeft $str $length $padChar]
}
# PadRight
#
# Like PadLeft, but adds the padding characters to the start of the string.
#
proc ::utils::string::PadRight {str length {padChar " "}} {
set s $str
for {set actual [string length $s]} {$actual < $length} {incr actual} {
set s "$padChar$s"
}
return $s
}
# PadCenter
#
# Like PadLeft and PadRight, but centers the specified string.
#
proc ::utils::string::PadCenter {str length {padChar " "}} {
set pre 1
set s $str
for {set actual [string length $s]} {$actual < $length} {incr actual} {
if {$pre} {
set s "$padChar$s"
set pre 0
} else {
append s $padChar
set pre 1
}
}
return $s
}
|