Polecenie CHR błąd?

0

Witam Szanowne Grenium.

Zamieniem liczbę 132 na znak typu char w następujący sposób

var sum , Skon , n : integer;
odp : string;

// odp := '00712';
// Skon := 132;
odp := odp + chr(Skon)+'~';

i zamiast otrzymać 00712ä~ otrzymuje 00712"~

Gdzie może tkwić problem XP D7

Pozdrawiam
Janusz

0

Byćmoże w ustawieniach strony kodowej (1250).

0

Opis z helpu D7

function Chr(X: Byte): Char;

Jak funkcja ma używać stromy kodowej skoro zmienna
wejściowa jest jedno bajtowa a nie typu word,
a wynik jest typu char jednoznakowy.

0

Górna połówka kodów ASCII jest zależna właśnie od strony kodowej. To nie jest kwestia funkcji Delphi, tylko standardu ASCII.

0

tablica ascii to 0..255 róznych znaków, teraz w zależności od strony kodowej (wartości przykładowe) dla mazovia ascii[80] = 'a', dla latin2 ascii[80] = 'b'.

Funkcja nie używa strony kodowej tylko wyswietla wartości, które tam są, a wartości te mogą się róznić między sobą.

Zadam pytanie, na jakiej podstawie twierdzisz, że powinieneś otrzymać znak taki a nie inny? Na podstawie ustawień językowych, w tym strony kodowej.

0

Ok.

Tylko nie oto chodzi

ä kod 132
" kod 34

Jaki to jest znak jest to nieistotne.
Chodzi o zapamiętanie wartości.
Zamieniając z powrotem ten znak na bajt
otrzymuje zamiast 132 dostaję 34.

I tego nie mogę pojąc.

0

Widać, że to Ty nie rozumiesz: nie dostajesz symbolu o kodzie 34. Wczytujesz ä (132) w pewnej stronie kodowej (mi wygląda to na kod używany w konsoli Windows), a wypisujesz " (132) w innej stronie kodowej (to z kolei wygląda jak ta, używana domyślnie w aplikacjach okienkowych).

Kod jest ten sam, ale strona kodowa powoduje, że ma inną reprezentację graficzną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0