Показать сообщение отдельно
  #1  
Старый 09.08.2012, 18:35
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию Как правильно перевести 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, но можно и без него, если вам не удобно. Он для интерфейса.
Программа в целом внизу.
Вложения
Тип файла: rar String to HEX.rar (463.1 Кбайт, 16 просмотров)
Ответить с цитированием