|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как правильно перевести String и Integer в HEX
Здравствуйте! Возникла проблема! Есть программа, она считывает информацию из TXT, конвертирует ее в HEX и записывает в Memo1. Но вот проблема:в файле есть как слова, так и цифры. Слова программа правильно конвертирует, а цифры - нет. Вот сайт, где указаны данные и их перевод(служит мне примером) https://ccrma.stanford.edu/courses/4...ts/WaveFormat/ именно эта картинка https://ccrma.stanford.edu/courses/4...wave-bytes.gif Как сделать, что бы в Memo1 было так, как на рисунке?:
52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 А не так: 52 49 46 46 0D 0A 32 30 38 34 0D 0A 57 41 56 45 0D 0A 66 6D 74 20 0D 0A 31 36 0D 0A 31 0D 0A 32 0D 0A 32 32 30 35 30 0D 0A 38 38 32 30 30 0D 0A 34 0D 0A 31 36 0D 0A 64 61 74 61 0D 0A 32 30 34 38 0D 0A Ясное дело цифры могут быть разными, но это пример. Вот код программы: Код:
unit Unit1; interface uses SysUtils, Classes, Controls, Forms, StdCtrls, Dialogs, sSkinManager, sButton, sMemo, sLabel, sEdit; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; sSkinManager1: TsSkinManager; sButton2: TsButton; sLabel1: TsLabel; sEdit1: TsEdit; sMemo1: TsMemo; sButton1: TsButton; procedure sButton1Click(Sender: TObject); procedure sButton2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.sButton2Click(Sender: TObject); var F:file of byte; z:byte; s:string; i:integer; begin sMemo1.Clear; s:=''; i:=0; assignfile(F, sEdit1.Text); reset(F); while not eof(F) do begin read(F,z);s:=s+IntToHex(z,2)+' '; i:=(i+1) mod 16; if (i=0) or eof(F) then begin sMemo1.Lines.Add(s); s:=''; end; end; end; procedure TForm1.sButton1Click(Sender: TObject); begin with OpenDialog1 do if Execute then sEdit1.Text:=FileName; end; end. P.S. Использую компонент AlphaControls, но можно и без него, если вам не удобно. Он для интерфейса. Программа в целом внизу. |