Does anyone have the code to capitalise a field after it has been entered
and are willing to share ?
Thanks in advance,
Kevin
L# = Len(Clip(LOC:String))
LOC:String = Lower(LOC:String)
LOC:String[1] = Upper(LOC:String[1])
Loop Idx# = 2 To L#
If LOC:String[Idx#-1] = ' ' OR LOC:String[Idx#-1] = '.'
LOC:String[Idx#] = Upper(LOC:String[Idx#])
End
End
I am very new to Clarion so there might be a better way.
Regards
Stan
"KEVIN PLUMMER" <kevinnomore...@bigpond.com> wrote in message
news:3ec0...@news.softvelocity.com...
Kev
"Stan" <theman@clan_antispam_.co.za> wrote in message
Just open your window in the window designer, right click on the field you
want capitalized and choose properties, and then choose the extra tab, on
there is an option called "Case", just choose capitalize to have this filed
entered capitalized, or choose upper to have in entered all upper case.
Regards
Mark
"KEVIN PLUMMER" <kevinnomore...@bigpond.com> wrote in message
news:3ec0...@news.softvelocity.com...
Capitalize PROCEDURE (STRING InputStr)
Outstring &STRING
PrevChar STRING(1)
CODE
Outstring &= InputStr
loop ndx# = 1 to len(clip(InputStr))
Outstring[ndx#] =
CHOOSE(~PrevChar,UPPER(InputStr[ndx#]),LOWER(InputStr[ndx#]))
PrevChar = InputStr[ndx#]
end
return(clip(Outstring))
Cheers
Mark
"KEVIN PLUMMER" <kevinnomore...@bigpond.com> wrote in message
news:3ec0...@news.softvelocity.com...
Capitalize FUNCTION (Nam) ! Declare Procedure
! Start of "Data Section"
! [Priority 4000]
!Nam STRING(30)
B BYTE ! Beginning of word, i.e. the first letter
Ii BYTE ! The name has II suffix, e.g. James Madison II
Mc BYTE ! The name has Mc, e.g. McEnroe , O', e.g. O'Reilly
Idx SHORT ! Index or position
! End of "Data Section"
CODE ! Begin processed code
! Start of "Processed Code"
! [Priority 4000]
B = TRUE
IF UPPER(SUB(Nam,1,2)) = 'MC' OR UPPER(SUB(Nam,1,2)) = 'O'''
Mc = TRUE
!MESSAGE('Mc = ' & Mc & '|Nam = ' & Nam,'Proper Case',ICON:Asterisk)
ELSE
Mc = FALSE
END
LOOP Idx = 1 TO LEN(CLIP(Nam))
IF Ii AND Nam[Idx] = 'I'
B = TRUE
END
IF Idx > 1 AND NOT B
Nam[Idx] = LOWER(Nam[Idx])
END
IF Nam[Idx] = '' OR Nam[Idx] = ',' OR Nam[Idx] = '.' OR Nam[Idx] = '-'
OR Nam[Idx] = '(' OR Nam[Idx] = '/'
B = TRUE
!MESSAGE('Idx = ' & Idx,'Proper Case',ICON:Asterisk)
ELSE
B = FALSE
END
IF Mc AND Idx = 2
B = TRUE
END
IF Nam[Idx] = 'I'
Ii = TRUE
ELSE
Ii = FALSE
END
END
!MESSAGE('Nam = ' & Nam,'Proper Case',ICON:Asterisk)
RETURN(Nam)
! End of "Processed Code"
!???????????????????????????????????????????????????????????????????????????
???
! Capitalize - Capitalize the passed string
!???????????????????????????????????????????????????????????????????????????
???
Capitalize FUNCTION(EXT:Capitalize, PAR:bSkipAllCaps)
CODE
if PAR:bSkipAllCaps and clip(EXT:Capitalize) = upper(clip(EXT:Capitalize))
do ProcedureReturn
end
! Test to see whether mixed case was used in string.
!
if clip(EXT:Capitalize) <> upper(clip(EXT:Capitalize)) and |
clip(EXT:Capitalize) <> lower(clip(EXT:Capitalize))
do ProcedureReturn
end
! Traverse the complete length of the passed string
!
loop I# = 1 to len(clip(EXT:Capitalize))
! If the current character has no case, skip it
!
if lower(EXT:Capitalize[I#]) = upper(EXT:Capitalize[I#])
CYCLE
end
! Capitalize if preceeded with "KEY CHARACTER", OTHERWISE lower it.
!
if I# = 1 or instring(EXT:Capitalize[I# - 1], '<0><32>,.:-', 1)
EXT:Capitalize[I#] = upper(EXT:Capitalize[I#])
else
EXT:Capitalize[I#] = lower(EXT:Capitalize[I#])
end
end
do ProcedureReturn
!???????????????????????????????????????????????????????????????????????????
???
ProcedureReturn ROUTINE
RETURN(EXT:Capitalize)
"KEVIN PLUMMER" <kevinnomore...@bigpond.com> wrote in message
news:3ec0...@news.softvelocity.com...
stringLength LONG
i LONG
prevChar STRING(1)
curChar STRING(1)
CODE
stringLength = LEN(CLIP(inString))
prevChar = ' ' ! Force first char to be uppercase
LOOP i = 1 to stringLength
curChar = inString[i]
case prevChar
of 'A' to 'Z'
orof 'a' to 'z'
orof '0' to '9'
orof ''''
inString[i] = LOWER(curChar)
else
inString[i] = UPPER(curChar)
end
prevChar = curChar
END
---------------------------------------------------------------
Steve Rothkin
Dancemasters Disc Jockey Entertainers, LLC
22A Hawkes Close, Ossining, NY 10562
Email: st...@dancemasters.net Web: http://www.dancemasters.net
Voice: (914)762-4565 or (866)FUN-DJMC Fax: (914)762-4566
Proud member of the American Disc Jockey Association (ADJA) and
the International Special Events Society (ISES)
-=> Mike Hanson <=-
MEMBER
!==============================================================================
MAP
Proper PROCEDURE(STRING N),STRING
IsNumericChar PROCEDURE(STRING pChar),BYTE
IsAlphaChar PROCEDURE(STRING pChar),BYTE
IsLowerChar PROCEDURE(STRING pChar),BYTE
IsUpperChar PROCEDURE(STRING pChar),BYTE
ToLower PROCEDURE(STRING pChar),STRING
ToUpper PROCEDURE(STRING pChar),STRING
END!MAP
!==============================================================================
Mod:IntU STRING('ЗДЕЙЖЦЬС'),STATIC
Mod:IntL STRING('здейжцьс'),STATIC
Mod:IntLC STRING('ьйвдаезклипомжфцтыщябнуъс'),STATIC
Mod:IntUC STRING('ЬЙAДAЕЗEEEIIIЖOЦOUUYAIOUС'),STATIC
!==============================================================================
Proper PROCEDURE(STRING N)
Loc:RetVal STRING(255)
Loc:Char STRING(1),DIM(255),OVER(Loc:RetVal)
Loc:X BYTE
Loc:Start BYTE
Loc:Len BYTE
Loc:Mc BYTE(-1)
CODE
Loc:RetVal = N
IF IsLowerChar(Loc:Char[1])
Loc:Char[1] = ToUpper(Loc:Char[1])
END!IF
IF Loc:Char[1] = 'M' AND UPPER(Loc:Char[2]) = 'C'
Loc:Char[2] = 'c'
Loc:Start = 3
Loc:Mc = 1
ELSE
Loc:Start = 2
END!IF
Loc:Len = LEN(CLIP(N))
LOOP Loc:X = Loc:Start TO Loc:Len
IF IsAlphaChar(Loc:Char[Loc:X])
IF IsAlphaChar(Loc:Char[Loc:X-1])
IF Loc:Mc <> Loc:X-2
IF IsUpperChar(Loc:Char[Loc:X])
Loc:Char[Loc:X] = ToLower(Loc:Char[Loc:X])
END!IF
IF Loc:Char[Loc:X]='c' AND Loc:Char[Loc:X-1]='M'
Loc:Mc = Loc:X - 1
END!IF
ELSE
IF IsLowerChar(Loc:Char[Loc:X])
Loc:Char[Loc:X] = ToUpper(Loc:Char[Loc:X])
END!IF
END!IF
ELSIF UPPER(Loc:Char[Loc:X])='S' AND Loc:Char[Loc:X-1]=''''
IF Loc:X >= 3
IF Loc:Char[Loc:X-2] = 'O'
Loc:Char[Loc:X] = 'S'
ELSE
Loc:Char[Loc:X] = 's'
END!IF
ELSE
Loc:Char[Loc:X] = 's'
END!IF
ELSIF IsNumericChar(Loc:Char[Loc:X-1])
IF IsUpperChar(Loc:Char[Loc:X])
Loc:Char[Loc:X] = ToLower(Loc:Char[Loc:X])
END!IF
ELSIF IsLowerChar(Loc:Char[Loc:X])
Loc:Char[Loc:X] = ToUpper(Loc:Char[Loc:X])
END!IF
END!IF
END!LOOP
RETURN Loc:RetVal
!==============================================================================
IsNumericChar PROCEDURE(STRING pChar)
CODE
RETURN CHOOSE(pChar[1] >= '0' AND pChar[1] <= '9')
!==============================================================================
IsAlphaChar PROCEDURE(STRING pChar)
CODE
IF (pChar[1] >= 'A' AND pChar[1] <= 'Z') |
OR (pChar[1] >= 'a' AND pChar[1] <= 'z') |
OR INSTRING(pChar[1], Mod:IntU) |
OR INSTRING(pChar[1], Mod:IntLC)
RETURN 1
ELSE
RETURN 0
END!IF
!==============================================================================
IsLowerChar PROCEDURE(STRING pChar)
CODE
IF pChar[1] >= 'a' and pChar[1] <= 'z' |
OR INSTRING(pChar[1], Mod:IntLC)
RETURN 1
ELSE
RETURN 0
END!IF
!==============================================================================
IsUpperChar PROCEDURE(STRING pChar)
CODE
IF pChar[1] >= 'A' and pChar[1] <= 'Z' |
OR INSTRING(pChar[1], Mod:IntU, 1)
RETURN 1
ELSE
RETURN 0
END!IF
!==============================================================================
ToLower PROCEDURE(STRING pChar)
P BYTE,AUTO
CODE
IF pChar[1] < '~'
RETURN CHR(VAL(pChar)+32)
ELSE
P = INSTRING(pChar[1], Mod:IntU)
RETURN CHOOSE(~P, pChar[1], Mod:IntL[P])
END!IF
!==============================================================================
ToUpper PROCEDURE(STRING pChar)
P BYTE,AUTO
CODE
IF pChar[1] < '~'
RETURN CHR(VAL(pChar[1])-32)
ELSE
P = INSTRING(pChar[1], Mod:IntLC)
RETURN CHOOSE(~P, pChar[1], Mod:IntUC[P])
END!IF
!==============================================================================
www.boxsoft.net
Nice of you to post this here, Mike.
Mark
"Mike Hanson [BoxSoft]" <mi...@boxsoft.net> wrote in message
news:e98acvk0nh8aj3l05...@4ax.com...