adns Napisano Maj 15, 2011 Zgłoś Share Napisano Maj 15, 2011 Witam. Próbuje posortować tekst zawierający polskie znaki, ale ponieważ polskie litery są na końcu alfabetu w kodach ASCII, przez co są posortowane w złej kolejność względem normalnych znaków. Ktoś wie jak sobie z tym poradzić? Jak posortować tekst zawierający polskie litery? Link do komentarza Udostępnij na innych stronach More sharing options...
Integer Napisano Maj 15, 2011 Zgłoś Share Napisano Maj 15, 2011 Żeby właściwie posortować wyrazy z literami polskiego alfabetu chyba najprościej będzie utworzyć zmienna tekstową zawierając ciąg znaków do posortowania i wykorzystując funkcję Pos, która wskazuje nie tylko pozycję znaku w Stringu ale i ciągu znaków w przeglądanym stringu const cZnaki = '0123456789aAaĄbBcCćĆ........zŻźŹżŻ'; var i, {pętla przeglądająca string} in: Integer; {pozycja znaku w alfabecie} Wyraz: String; {wyraz przeglądany} begin {petla przegladająca wyrazy} for i:= 1 to Length(Wyraz) do {petla przeglądająca litery w wyrazie} begin in:= Pos( Wyraz[i], cZnaki ); {uzyskanie pozycji danego znaku} ... end; OR+^Ź^\"Ąh'#9ćśbćvĘ+ś*\"Z\"zŚźn~r8óz,'śk,2r(&ó,śĘgĄś=j[zsyźŹ-Ęjk*ZvKŁjF'jW function PobierzCyfryiKropki( const OldStr: String): String; const cCyfKrop = '0123456789.'; var NewStr: String; i, dL, dC: Integer; Odstep: Integer; begin dl:= Length(OldStr); NewStr:= ''; Odstep:= 0; for i:= 1 to dl do begin if Pos(OldStr[i],cCyfKrop)>0 then begin Odstep:= 0; { if OldStr[i]<>'.' then } NewStr:= NewStr + OldStr[i]; end else begin Inc(Odstep); if Odstep=1 then NewStr:= NewStr + #13; { nowa liczba w nowej lini } end; end; Result:= NewStr; end; Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.