C++ 바이너리(Binary) 데이터를 C# BinaryReader 로 읽기.
Programming/C# / 2010. 7. 14. 15:32
C++ 에서 FILE 를 사용해서 데이터를 바이너리로 저장 했다면 C#에서 어떻게 읽어야 할까?.
C#을 배우는 상태에서 C++ 과의 파일 연동 문제가 고민이 되었다.
사실 모르니 궁금증이 생긴 거지만 몇가지 테스트를 하다 보니 바이너리 데이터는 BinaryReader 로 읽을수 있었다.
해당 파일을 읽을때 FileInfo를 사용해서 오픈 한 다음에 BinaryReader로 읽을 수 있다.
C++ 에서 아래 데이터를 저장했습니다.
C# 에서 아래와 같이 데이터를 읽었습니다.
출처 : http://www.iamgsi.com/?page=35
C#을 배우는 상태에서 C++ 과의 파일 연동 문제가 고민이 되었다.
사실 모르니 궁금증이 생긴 거지만 몇가지 테스트를 하다 보니 바이너리 데이터는 BinaryReader 로 읽을수 있었다.
해당 파일을 읽을때 FileInfo를 사용해서 오픈 한 다음에 BinaryReader로 읽을 수 있다.
FileInfo fi = new FileInfo(@"D:\Testbinary.dat");
BinaryReader br = new BinaryReader(fi.OpenRead());
BinaryReader br = new BinaryReader(fi.OpenRead());
C++ 에서 아래 데이터를 저장했습니다.
FILE* fp = fopen(path, "wb");
int data0 = 100;
float data1 = 100.123f;
char buf0[128] = "son byoung uk";
float data1 = 100.123f;
char buf0[128] = "son byoung uk";
fwrite(&data0, sizeof(int), 1, fp);
fwrite(buf0, 128, 1, fp);
fwrite(&data1, sizeof(float), 1, fp);
fwrite(buf0, 128, 1, fp);
fwrite(&data1, sizeof(float), 1, fp);
fclose(fp);
C# 에서 아래와 같이 데이터를 읽었습니다.
int data0;
float data1;
char[] buf0;
string buf1; data0 = br.ReadInt32();
buf0 = br.ReadChars(128);
buf1 = new string(buf0);
data1 = br.ReadSingle();
float data1;
char[] buf0;
string buf1; data0 = br.ReadInt32();
buf0 = br.ReadChars(128);
buf1 = new string(buf0);
data1 = br.ReadSingle();
위의 내용을 아래와 같이 정리해봤습니다.
C++ |
C# |
int |
br.ReadInt32() |
float |
br.ReadSingle() |
double |
br.ReadDouble() |
char[] |
string a = new string(br.ReadChars(128)) |
출처 : http://www.iamgsi.com/?page=35
반응형
'Programming > C#' 카테고리의 다른 글
Form을 원하는 위치에 띄우자! (0) | 2010.07.14 |
---|---|
TreeView 내용 추가하기 (2) | 2010.07.14 |
윈폼에서 단축키 개발하기 (0) | 2010.07.13 |
Windows Forms Application (2) | 2010.07.07 |
PointToClient 와 PointToScreen (0) | 2010.07.07 |