Q&A

  • 헥사파일 <--> Bin 파일 로의 변환

제가 헥사피일을 Binary 파일로,
Binary 파일을 헥사파일로 변환하는
프로그램을 짜려고 하는데
어떻게 프로그램을 짜야되는지 영
감을 못잡겠네요.....

이부분을 잘 아시는 고수분이 도와주실 수
있는지요....

무턱데고 도와달라고 해서 죄송........

혹시나해서 헥사파일과 바이너리파일을
첨부합니다..... ^^

4  COMMENTS
  • Profile
    2004.02.18 23:34
    일단 아래처럼 만드니.. 문제가 없네요...
    단 문제가 있다면.. 올려주신 hex 파일은 사용하지 않았다는 거구요.
    bin 파일을 읽어서....hex 로 만들고...
    그렇게 만들어진 hex 를 다시 bin 으로 만들고...
    뭐 이런 겁니다.....
    잘 사용하시기 바랍니다...
    물론 이거보다 코드가 간단하고.. 이쁘게 만들수 있겠지만..
    그냥 대충 만들어 봤습니다... 테스트 해도 잘돌아 가구요..
    그럼 답이 됐으면 좋겠네요..
    즐거운 프로그램 하세요..


    // bin->hex
    procedure TForm1.Button1Click(Sender: TObject);
    var
    fr_stream : TFileStream;
    j : integer;
    k : byte;
    w_string : string;
    fw : Tstringlist;
    begin
    if OpenDialog1.Execute then
    begin
      fr_stream := TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
      fw := Tstringlist.Create;
      while fr_stream.Position < fr_stream.Size do
        begin
        w_string:='';
        for j:=0 to 15 do
          begin
          fr_stream.Read(k,1);
          w_string:= w_string + inttohex(k,2);
          end;
        fw.Add(w_string);
        end;
      fr_stream.Free;
      fw.SaveToFile(OpenDialog1.FileName + '.hex');
      Showmessage('끝');
    end;

    end;


    // hex ->bin
    procedure TForm1.Button2Click(Sender: TObject);
    var
    fr : Tstringlist;
    fw : TFileStream;
    i,j : integer;
    aa : array [0..15] of char;
    begin
    if OpenDialog1.Execute then
      begin
      fr := Tstringlist.Create;
      fr.LoadFromFile(OpenDialog1.FileName);
      fw := TFileStream.Create(OpenDialog1.FileName+'.bin',fmCreate        or fmOpenWrite);
      for i:=0 to fr.Count -1 do
        begin
        HexToBin(pchar(fr.Strings[i]),aa,16);
        fw.Write(aa,16);
        end;
      fw.Free;
      showmessage('끝');
      end;
    end;



  • Profile
    윤상현 2004.02.18 23:56

    아래 코드로 프로그램을 했더니 잘 변환이 되더군요....
    감사... 감사....

    그런데 제가 하려던 것은 인텔헥사파일을
    Bin 파일로 변환하려고 합니다 . ...
    인텔헥사파일의 형식이 일단은 뭔지 몰라서리..
    인터넷 뒤지고 있는데 형식에 대한것은
    별로 나와 있지 않네요...  쩝...

    첨부한 파일도 인텔헥사파일이었는데....




  • Profile
    2004.02.19 00:33
    인텔 헥사 파일의 포멧을 올려 드리겠습니다..
    지금 제가 그것을 이용해서 코드를 짤 마음이 아니라서..

    일단 파일 포멧을 가지고 있으니 올려 드리겠습니다..
    그럼...

    즐프..

  • Profile
    이중철 2004.02.18 22:44
    대충 프로그램 Hex -> Bin은 만들었거든요
    Bin -> Hex도 같은 방법으로 하면 됩니다.

    OpenDialog, SaveDialog은 폼에다 집어넣고
    버튼 하나 만들어서 이부분 붙여놓으세요

    그럼 이만

    var
      SMS : TMemoryStream;
      TMS : TMemoryStream;
      TEMPMS : TMemoryStream;
      P : Pchar;
      i : integer;
    begin
      OpenDialog1.Filter := 'HEX files (*.hex)|*.hex';
      if OpenDialog1.Execute then
      begin
        SMS := TMemoryStream.Create;
        SMS.LoadFromFile(OpenDialog1.FileName);
        SMS.Position := 0;
        P := SMS.Memory;
        TEMPMS := TMemoryStream.Create;
        for i := 0 to SMS.Size - 1 do
          if (P[i] in ['0'..'9']) Or (P[i] in ['A'..'F'])  then
            TEMPMS.Write(P[i], 1);
        SMS.Free;
        TEMPMS.Position := 0;
        P := TEMPMS.Memory;
        TMS := TMemoryStream.Create;
        TMS.SetSize(TEMPMS.Size div 2);
        TMS.Position := 0;
        HextoBin(P, TMS.Memory, TMS.Size);
        TMS.Position := 0;
        SaveDialog1.Filter := 'BIN files (*.bin)|*.bin';
        if SaveDialog1.Execute then
          TMS.SaveToFile(SaveDialog1.FileName);
        TMS.Free;
        TempMS.Free;
      end;
    end;

    • 엘짱
    • 2004.02.19 22:11
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 권영길
      2004.02.19 22:45
      없는페이지는 404 에러가 정상이지만 그건 서버 맘(?)입니다. 위의 경우의 500에러는 서버에서 클라이언트...
    • 하창호
      2004.03.03 17:27
      MS 익스플로어만 전용으로 accept하는 웹이 있다고 하셨는데 인디 콤포넌트로 접속하려면 그 부분은 어떻...
    • mrdelphi
    • 2004.02.19 18:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박민규
    • 2004.02.19 17:33
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 김경록
      2004.02.23 03:58
      SELECT GUBUN,        MAX(DECODE(LOC, 'G1', NM))  G1,  ...
    • 박민규
      2004.02.24 15:59
      이런 간단한 방법이 있었다니... 다시한번 오라클의 놀라운 능력에 감탄할 뿐입니다... 물론 이런 쿼리를 ...
    • 김수현
      2004.02.19 22:42
      제가 예전에 엑세스로 고민했던 사항이네요. 고민하다가 VB로 루프를 돌면서 새로운 테이블에 생성하는 부...
    • 박민규
      2004.02.20 15:55
      우선 답변 감사드립니다... 하지만 궁금한게 또 있어서리... 그럼 오라클로는 해결할만한 쿼리가 있는...
    • 성더기
      2004.02.20 18:34
      위치정보가 G1~G4까지 고정적이라면 각각을 가져오는 쿼리를 인라인 뷰로 만들고 그것을 시간을 기준으로...
    • 박민규
      2004.02.24 15:55
      먼저 답변 정말 감사드립니다... 근데 님의 조언대로 엑세스에서 해봤더니 에러가 나더군여... 후밍 제...
    • 손희석
    • 2004.02.19 16:02
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.02.19 18:24
      안녕하세요. 최용일입니다. 델파이에 잘 적용되어져서 사용되고 있다고 생각하는데요... 가장 대표적...
    • 손희석
      2004.02.19 23:12
      우선 답변에 대해 감사드립니다. 델파이의 OOP메카니즘에 관한 책이나 원서를 좀 추천 부탁드립니다 ^^ ...
    • 하창훈
    • 2004.02.19 07:28
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김원석
    • 2004.02.19 03:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Mr. Ziker
      2004.02.20 21:33
      예전에 작업했던 소스중에 있더군요.. lbShowCTime.Caption := SecToTime(Round(ZMediaPlayer.CurrentPo...
    • 김원석
      2004.02.24 22:49
      답해주신 거 감사합니다. ^^ 하지만 zmediaplayer가 어떤건지 잘 모르겠구요..^^   Window...
    • superman
    • 2004.02.19 01:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 온진욱
    • 2004.02.19 00:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.02.19 01:16
      안녕하세요. 패키지 통째를 인스톨하지 않는한 대부분 개별 컴퍼넌트는 dclusr.dsk 에 포함되어 컴파일 됩...
    • help me
    • 2004.02.19 00:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.02.19 00:53
      안녕하세요. ^는 포인터 변수를 통한 값의 참조이고 @는 포인터 변수의 주소값을 대입하는 것입니다. ...
    • 정민섭
    • 2004.02.19 00:08
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 윤상현
    • 2004.02.18 22:26
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김운필
      2004.02.21 03:01
      C 스타일과 비슷하게 하려면 FileOpen, FileSeek, FileRead, FileClose 함수 이용하세요   ...
    • 이중철
      2004.02.18 22:47
      쩝 델파이는 한방 입니다 var MS : TMemoryStream; begin   MS := TMemoryStream.Create; ...
    • 윤상현
      2004.02.18 23:50
      이렇게 하면 읽을 파일이 텍스트 이던지, 바이너리이던지 상관없이 바이너리형태로 읽어들인단 말씀이신...
    • 이중철
      2004.02.20 02:52
      Text 화일이니 Binary화일이니 이미지화일이니 그런것들은 프로그램에서 어떻게 Assign 하는가의 문제 입...
    • 김수현
    • 2004.02.18 22:08
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.02.19 00:41
      안녕하세요. 저도 확인해볼려고 하는데 Delphi 버젼이 몇이지요? 전 6.0 쓰는데 FixedCols 란 프로퍼티는...
    • 김수현
      2004.02.19 17:58
      죄송합니다. 제가 질문을 제대로 못했나보네요. 그러니까 DBGrid에서 StringGrid의 속성을 사용하기 위...
    • 송현미
    • 2004.02.18 20:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Galaxy
      2004.02.18 20:50
      처음에 저도 MYSQL 사용하기 위해서 모든 서점을 다지고 다녀죠 그런데 서점에는 책이거의 없다라고요 (2...
    • 송현미
      2004.02.18 20:57
      우선 감사 드리구요 영어가 짧기는 하지만... 책도 보고.... www.MySQl.Com에서 다운받아서 해보도록 하...
    • Crazy
      2004.02.19 01:35
      등록하라는 메시지인데요.... 정식버젼이 아닌가보네요..
    • 엑기스
    • 2004.02.18 18:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.02.18 19:08
      전 잘됩니다만... Panel과 Edit의 TabOrder를 둘다 0으로 주세요 또는 델파이6(5에도 있는지는 모르겠...
    • 엑기스
      2004.02.19 01:04
    • 윤상현
    • 2004.02.18 18:14
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 2004.02.18 23:34
      일단 아래처럼 만드니.. 문제가 없네요... 단 문제가 있다면.. 올려주신 hex 파일은 사용하지 않았다는 거...
    • 윤상현
      2004.02.18 23:56
      아래 코드로 프로그램을 했더니 잘 변환이 되더군요.... 감사... 감사.... 그런데 제가 하려던 것은 ...
    • 2004.02.19 00:33
      인텔 헥사 파일의 포멧을 올려 드리겠습니다.. 지금 제가 그것을 이용해서 코드를 짤 마음이 아니라서.. ...
    • 이중철
      2004.02.18 22:44
      대충 프로그램 Hex -> Bin은 만들었거든요 Bin -> Hex도 같은 방법으로 하면 됩니다. OpenDialog...
    • 2004.02.18 07:51
    • 0 COMMENTS
    • /
    • 0 LIKES