음... 일단 성공하셨다니 정말 축하드립니당...
음냐... 이번엔 꺼꾸로 하신다구요...
전 지금 상중이지만 (제 컴이 운명하셨어요...T.T)
생각나는대로 불러보죠...
음... 그렇게 어려운건 아닌데...
텍스트 화일에서 시작위치를 잡고,
그담에 두바이트씩 읽어야 겠군요...
그리고 그 두바이트를 각각 16진수텍스트로 인식해서
4비트짜리 비트열로 바꾼후, 비트연산으로 두 숫자를
합쳐버리면 간단하겠군요...
예를 들어... 텍스트 화일에 17d4... 이런식이라면...
씨에도 없지만 델에도 텍스트를 16진수로 바꾸는 함수는 없겠죠?
그러니까 조금 번거로와도 이 문자열을 직접 16진수로 바꿔야 하겠
군요...
먼저 두바이트를 읽고... 한바이트씩 처리해야겠죠...
만약 읽어온 한 바이트가 아라비아숫자 문자라면...
(확신하는데 델파이에도 C의 isnum같은 함수가 있겠죠...)
(읽어온 바이트) - (아스키 문자'0'의 값)
하구 이 결과를 숫자로 바꾸면 숫자값이 나오겠군요...
만약 문자값이라면 (a - f 겠죠)
비슷한 방식으로
(읽어온 바이트) - (아스키 문자 'a'의 값) + 10
이렇게 하면 되겠죠...
이렇게 두 바이트를 처리하셔서 각각 숫자로 바꾸신후...
첫 바이트를 왼쪽으로 4비트 시프트 해서 두번째 바이트와 or연산을
하면 원하시는 결과가 나오겠죠?
비트연산에 약하시다면... 첫바이트 * 16 + 둘째바이트
이렇게 하셔도 되지만... 좀 비효율적이겠죠?
음... 상중의 슬픔으로 안그래도 헤매는 글솜씨가
완존히 횡설수설이군요...
죄송합니당...
무식이 임펠리테리였습니다....
|