[Lazarus] String with °
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Thu Oct 10 11:10:39 CEST 2013
Kamen Kamen schrieb:
> I have string with ° and I want to delete all symbols to °. When I
> delete symbol ° returns #176. How can I delete this symbol?
>
> Exampe: s := '49°45 ';
>
> After: delete (s, 1, 2); --> '°45 '
>
> After: delete (s, 1, 1); or delete (s, pos ('°', s), 1); --> #176'45 '
>
> I want to reseive only '45 '.
Most probably '°' is a multi-byte UTF-8 symbol. You can declare it as a
const Deg: UTF8string = '°';
and obtain the part past it using
NextPos := Pos(Deg,s)+ Length(Deg);
Tail := Copy(s, NextPos, Length(s));
When working with strings containing non-ASCII characters you should
forget about Char and character (byte) based functions. Use strings
instead, even for single letters, and the string based functions (Pos,
StringReplace...).
DoDi
More information about the Lazarus
mailing list