Cześć,
Mam prosty problem liczenia polskich znaków w stringu (chyba lepiej w widestringu). Odczytuje prawidłowo wartość TEdit.Text z polskimi znakami lecz niestety znaki z mojej tabeli stałych stają się krzakami. Jak to zrobić?
POLSKIE_LITERY: array [1..9] of WideString = (#196#132,'Ć','Ę','Ł','Ń','Ó','Ś','Ź','Ż');
Jak widać wpisanie bezpośrednio kodu UTF-8 także nie pomaga. Resztę kodu już mam wszystko działa poprawnie na klasycznych znakach ASCII przepuszczam pętlą każdą literę
function TMainForm.CountOccurences( const SubText: WideString ;const SearchText: WideString): Integer;
begin
Result := Pos(SubText, SearchText);
if Result > 0 then
Result := (Length(SearchText) - Length(StringReplace(SearchText, SubText, '', [rfReplaceAll]))) div Length(subtext);
end;
procedure TMainForm.PolskieLitery();
var
PolskieLiteryIlosc,PolskieLiteryZliczono,i : Integer;
begin
PolskieLiteryZliczono := 0;
PolskieLiteryIlosc := Round((SizeOf(POLSKIE_LITERY))/SizeOf(POLSKIE_LITERY[1]));
for i:=0 to PolskieLiteryIlosc do
begin
PolskieLiteryZliczono := PolskieLiteryZliczono + CountOccurences(POLSKIE_LITERY[i],mojString);
end;
Wynik := IntToStr(WielkieLiteryZliczono);
end;
Z góry dzięki za odpowiedzi