logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zapis transmisji --> HEX jak to zrobić w DELPHI6?

lukzak2298 27 Lut 2007 15:47 1091 2
REKLAMA
  • #1 3623818
    lukzak2298
    Poziom 18  
    Posty: 667
    Pomógł: 5
    Ocena: 90
    Mam zapis transmisji ściągnięty z magistrali szeregowej ultra sztuczką magiczką, za pomocą szpecjalnego konwertera.

    Po otwarciu w programie winhex, bez problemu da się odczytać kolejne ramki tego protokołu. A teraz w czym problem...


    Chce napisać program (a znam się na obróbce stringów, mam w tym jakieś doświadczenie) tylko nie umiem przerobić tego co mam przy użyciu delphi na hexy... a mam coś takiego:


    -2!  d   2 2 d   2 2 d   2 2r
    2  			   r
    ţ?Q!ł
    +Q  ‚
    -3! 8 d   2 2 d   2 2 d   2 2¤
    +3  d
    ţ?Q!ł
    +Q  ‚
     4! Ŕ d   2 2 d   2 2.
    +4  e
    ţ?Q!ł
    +Q  ‚
    ţ?Q!ł
    +Q  ‚
    ţ?Q!ł
    +Q  ‚
    ţ?Q!ł
    +Q  ‚
    ţ?Q!ł
    +Q  ‚
    ţ?Q!ł
    +Q  ‚
    ţ?Q!ł
    +Q  ‚


    (w załączniku całość, w normalnej postaci).

    Poszczególne ramki w hexach powinny się zaczynać od 0A a kończyć na 0D lub 0C (w zależnosci kto nadawał/transmitował coś) - to w ramach ciekawostki...

    Problem polega na tym jak przerobić zawartość pliku txt (załączonego) w delphi na np hexy w postci stringów do obróbki np. zmiennej typu string zawierającej wartości np 0A01000201000D <-- to autentyczny fragment 1 ramki, chce uzyskać taką zawartość zmiennej string (zmienna jako przykład, może to być np w TMemo, albo czymkolwiek, byle do obóbki dało się użyć standardowych funkcji delphi).



    PLIK -> program w delphi [obóbka, zamiany do czytelniejszej postaci/operacje na stringach] -> wynik w postaci np. 2giego pliku

    Przy czym operacje na plikach mam opanowane, tak samo na stringach, nie wiem tylko jak zamienić te znaczki na te stringohexy...


    Acha i dla dokuczliwych: SZUKAŁEM tego od 2 godzin na elektrodzie i nie znalazłem!

    Pozdrawiam i dzieki za odpowiedź.

    NIe
    Załączniki:
    • tic8_2.txt (27.16 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 3624003
    Sam Sung
    Poziom 33  
    Posty: 2014
    Pomógł: 227
    Ocena: 583
    const
      HexChar : string[$10] = '0123456789ABCDEF';
    
    SetLength(output, 2 * Length(input));
    for i := 1 to Length(input) do
    begin
      output[i*2-1] := HexChar[(ord(input[i]) shr 4) + 1];
      output[i*2] := HexChar[(ord(input[i]) and $F) + 1];
    end;
REKLAMA