C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[60415] Re:델파이 소스 Char(StrToInt('$'+Copy(S,(I*2)+1, 2))) 를 변환좀 ^^
장성호 [nasilso] 2220 읽음    2010-03-11 01:51
function HexToValue(const S : String) : String; 
var 
  I : Integer; 
begin 
  SetLength(Result, Length(S) div 2); 
  for I := 0 to (Length(S) div 2) - 1 do  
  begin 
    Result[I+1] := Char(StrToInt('$'+Copy(S,(I*2)+1, 2))); 
  end; 
end;


Hex 문자열 "303132333435" 이 있다면
       문자열 "012345"로 변환해주는 함수이네요

음...
정확하게 일치하진 않지만
비슷한 용도로 만들어진 함수가 이미 vcl에 있습니다.

HexToBin 이라구..

HexToBin을 이용하여 위 HexToValue를 구현하면..

//델파이 버젼
function HexToValue2(const S : String) : String;
begin
  SetLength(Result, Length(S) div 2);
  HexToBin(PChar(S),PChar(Result),Length(S) div 2);
end;


C++Builder버젼은 ?
String __fastcall HexToValue(String s)
{
   String sRslt;
   sRslt.SetLength(s.Length()/2);
   HexToBin(s.c_str(),sRslt.c_str(),s.Length()/2);
   return sRslt;
}



그리고 HexToBin 함수가 있으면
BinToHex라는 함수가 있을것 같지 않습니까?
다음 링크를 보면 BinToHex함수를 이용하여 간단한 HexViewser를 만든것이 있습니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=919

그럼..


두박자 님이 쓰신 글 :
: 안녕하세요
:
: 델파이 암호화 소스를 변환하려 하는데
:
: Char(StrToInt('$'+Copy(S,(I*2)+1, 2)))
:
: 이부분이 이해가 안돼네요..... 고수님들 도움좀 부탁드립니다.
:
: 전체소스인데요
: //----------------------------------------------------------
: // Hexadecimal로 구성된 문자열을 Byte 데이터로 변환
: function HexToValue(const S : String) : String;
: var
: I : Integer;
: begin
: SetLength(Result, Length(S) div 2);
: for I := 0 to (Length(S) div 2) - 1 do
: begin
: Result[I+1] := Char(StrToInt('$'+Copy(S,(I*2)+1, 2)));
: end;
: end;
:
: //----------------------------------------------------------
:
: 전 이렇게 변환했거든요 잘 안돼네요 ^^
:
: String __fastcall HexToValue(const String S)
: {
:     int I;
:     String ru;
:     ru.SetLength(S.Length() / 2);
:     int itmp;
:     String stmp;
:     for (I = 0; I<(S.Length() / 2)-1; I++)
:     {
:         stmp = S[I*2+1] + S[I*2+2];
:         ru[I+1] = char (StrToInt(stmp));
: //        ru[I+1] =  char(StrToInt('$'+Copy(S,(I*2)+1, 2)));
:     }
:     return ru;
: }
:
: 도움 부탁드립니다.

+ -

관련 글 리스트
60412 델파이 소스 Char(StrToInt('$'+Copy(S,(I*2)+1, 2))) 를 변환좀 ^^ 두박자 1455 2010/03/10
60415     Re:델파이 소스 Char(StrToInt('$'+Copy(S,(I*2)+1, 2))) 를 변환좀 ^^ 장성호 2220 2010/03/11
60413     Re: Char(StrToInt("$" + S.SubString((I * 2) + 1, 2))) Frigate 1004 2010/03/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.