Form1.Memo1.Lines.Add(s);
POS_START=1;
BIN_START=7;
ASC_START=57;
HEX_CHARS: PChar='0123456789ABCDEF';
Line: String[80];
i: Cardinal;
p: PChar;
nStr: String[4];
p:=@Data; // 메모리를 포인터에 연결
Line:='';
// 매개변수로 넘어온 길이만큼 읽어들이기 시작
for i:=0 to Count-1 do begin
// 16진수니까 16으로 나눈 나머지가 0 이면 새로운 라인 시작
if (i mod 16)=0 then begin
if Length(Line)>0 then Memo(Line);
// Line 을 초기화
FillChar(Line, SizeOf(Line), ' ');
Line[0]:=Chr(72);
nStr:=Format('%4.4X', [i]); // 오프셋
Move(nStr[1], Line[POS_START], Length(nStr));
Line[POS_START+4]:=':';
end;
if p[i]>=' ' then Line[i mod 16 + ASC_START]:=p[i] // 아스키
else Line[i mod 16 + ASC_START]:='.';
Line[BIN_START+3*(i mod 16)]:=HEX_CHARS[(Ord(p[i]) shr 4) and $F]; // 16진수
Line[BIN_START+3*(i mod 16)+1]:=HEX_CHARS[Ord(p[i]) and $F];
end; // for
Memo(Line);
mStream:=TMemoryStream.Create;
try
mStream.LoadFromFile('C:\index.dat');
ShowBinary(mStream.Memory^, mStream.Size);
finally
if Assigned(mStream) then FreeAndNil(mStream);
end;
'Delphi' 카테고리의 다른 글
[Delphi] System Common Util 함수들 (0) | 2009.04.18 |
---|---|
[Delphi] TStringList 사용에 관한 두어가지 (0) | 2009.04.18 |
[Delphi] 델파이 OOP의 특성 (0) | 2009.04.18 |
[Delphi] Data Types - String (0) | 2009.04.18 |
[Delphi] 주민등록번호, 신용카드번호 유효성 검사 (0) | 2009.04.18 |