|
스트림을 (MemoryStream 혹은 FileStream) 을 사용해 보시는 것이 좋을 것 같습니다.
1. 먼저 파일 용량을 알아내는 함수를 만든다 (fseek 도움말 example 을 보시면 예제에 나와있습니다)
2. 배열을 만들어서 a.txt, b.txt 등을 정의하고, 각 용량을 알아낸다.
3. 용량별로 sorting
4. MemoryStream 을 만들어, 파일을 루프 하면서 원하는 부분을 편집
편집 하는 루틴의 예제는 다음과 같습니다.
컴포넌트에서 제공하는 여러가지 메소드가 많으니 참고해 보세요.
cuperido
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TMemoryStream *msStream = new TMemoryStream;
TMemoryStream *msUnit = new TMemoryStream;
// a.txt 를 읽음..
msUnit->LoadFromFile("c:\\download\\a.txt");
// 스트림에 a.txt 의 내용을 밀어넣음
msStream->WriteBuffer(msUnit->Memory, msUnit->Size);
// b.txt 를 읽음..
msUnit->LoadFromFile("c:\\download\\b.txt");
// 스트림에 b.txt 의 내용을 3byte 이후로 부터 2 byte만 밀어넣음
msStream->WriteBuffer((char *)msUnit->Memory + 3, 2);
// 스트림 내용 기록
msStream->SaveToFile("C:\\Download\\Test.txt");
delete msUnit;
delete msStream;
}
즐겁게~ 님이 쓰신 글 :
: 예를들어 a.txt, b.txt ..... z.txt 파일이 있어,
: 이 파일을 하나의 파일로(abc.txt) 합치려고하는데요...
:
: 한번에 여러개의 파일을 열어서 파일명이나 파일용량으로 sort하여
: 그 순서대로 각 파일의 일부데이터를 합치고 싶습니다.
: 어떤 방법으로 해야하는지 도움부탁드립니다.
: 그리고, 몇개의 파일을 처리할 수 있는지도 알고싶습니다.
|