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
[70863] TMemoryStream의 Insert 기능? 이 있을까요?
memi [j00nh0] 2691 읽음    2014-02-07 18:11
어떤 파일을 열어서 헤더를 넣어줘야할 경우가 있을때
파일혹은 메모리스트림을 불러놓고 다른 스트림을 선언해서 헤더를 쓴후 불러왔던 스트림을 다시 쓰는데요..(혹은 CopyFrom()) 여러가지로 낭비라 느껴져서 ...
아래와 같이 테스트를 해보면

void __fastcall TForm1::FormCreate(TObject *Sender)
{
	TMemoryStream *ms = new TMemoryStream;

	String str = "abcd";
	TBytes b = str.BytesOf();
	ms->Write(b,b.Length);

	ms->Position = 0;
	str = "1234";
	b = str.BytesOf();
	ms->Write(b,b.Length);  //1234를 앞에 넣으면 당연히 abcd는 사라진다.

	ms->Position = 0;
	b.Length = 8;
	ms->Read(b,8);

	str = "";
	for(int i = 0; i < 8; i++)
		str += "0x" + IntToHex(b[i],2) + " ";

	Memo1->Lines->Add(str); //"1234abcd" 가 나왔으면 좋겠음...
	//결과는 당연히 1234와 쓰레기4바이트..

	delete ms;
}



역시 스트림 두개로 조립하는 방법뿐인가요?
TList의 Insert(0,xxx) 이런게 있음 좋을텐데..

+ -

관련 글 리스트
70863 TMemoryStream의 Insert 기능? 이 있을까요? memi 2691 2014/02/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.