I have a string, from which I want to extract one character that is needed to be used in a Case statement. The thing is the Case only takes Char values and not string values. So how do I convert a single string character to a char?
3 Answers
Use the string as a character array (1-based), and use the index of the character you want to use in the case statement. For instance, if you want to use the first character:
case MyString[1] Of // ... end; NB make sure you check the the string is of at least that length before you use the subscript, or you'll get an access violation.
3 Comments
afrazier
Hands up if you have a function in your personal library of code with a signature like the following:
function StrToChar(const S: string; Index: Integer = 1; Default: Char = ' '): Char;Tony Hopkinson
Nice edit, I do C# and Delphi, and always end up with a mental block on zero and 1 based, have to check every time I switch
asdjfiasd
Shortest is this:
c := Copy(s + ' ', 1, 1)[1];Since string became 0-based on mobile platforms, there is also an always-safe way to get a char from single-character string.
myString[Low(myString)]