Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

kodowanie Unicode...błąd w programie

dodda19 10 Maj 2010 07:51 1002 2
  • #1 10 Maj 2010 07:51
    dodda19
    Poziom 8  

    Witam.. mam problem i liczę na Wasza pomoc. Muszę stworzyć program który będzie odczytywał wartości binarne z "ciagbinarny" (TMemo) oraz litery z kontenera.Jeśli napotka w ciagubinarnym "1" to zamienia odpowiednia literę w kontenerze na tą samą ale o innym kodzie. Przykładowo
    ... litera "a" ma kod Unicode 97 oraz 65377
    ... litera "b" ma kod 98 i 65378 itd.
    Zatem jeśli w ciągbinarny bedzie "1" to np kod 97 zamienia na 65377
    Tablica "litery" jest typu Word bo np char obsługuje tylko wartości od 0 do 255... tylko teraz mam problem, gdyż te zmodyfikowane litery chciałam wpisać do nowego okienka Memo1 a wyświetlają mi się tylko liczby a nie odpowiadające im znaki. Rzutowania na char nie moze być.

    Code:

    Word litery[200];
    for(int i=1;i<=kontener->GetTextLen();i++)
           litery[i]=kontener->Lines->Text[i] ;
    char ciag[200];
    for(int j=1;j<=ciagbinarny->GetTextLen();j++)
           ciag[j]=ciagbinarny->Lines->Text[j] ;

    for(int k=1;k<=ciagbinarny->GetTextLen();k++)
    {
              if(ciag[k]=='1')
                     {
                      litery[k]+=65280; //bo taka jest różnica pomiędzy 97 a 65377 itd
                     }

    }
    for( int t=1;t<=kontener->GetTextLen();t++)
              Memo1->Lines->Text=Memo1->Lines->Text+litery[t];

    0 2
  • #2 10 Maj 2010 11:37
    organista
    Poziom 15  

    Memo1->Lines->Text=Memo1->Lines->Text+litery[t] popraw na
    Memo1->Lines->Text=Memo1->Lines->Text+ciag[t];

    0
  • #3 10 Maj 2010 11:44
    dodda19
    Poziom 8  

    ale wtedy wyświetli mi po prostu ciąg: 0110.... zamiast słowa

    0