Q&A

  • 메모리스트림과 화일스트림 사용해서 복사하기
   MS    := TMemoryStream.Create;
   FS    := TFileStream.Create('c:1.txt', fmOpenRead);
   rS    := TFileStream.Create('C:12.txt',  fmCreate);
   FS.Position := 0;
    MS.Write(FS, FS.Size);
    MS.Position := 0;
   rs.Write(MS, MS.Size);
   FS.Free;
   rS.Free;
    MS.Free;

위와같이 화일스트림으로 c:1.txt를 읽어서 메모리스트림으로 쓰고
다시 메모리스트림을 화일스트림을 이요해서 c:12.txt로
쓰려고 하는데 잘 되질 않네요.

고수님들 뭐가 잘못된건지 알려주세요~~
5  COMMENTS
  • Profile
    최용일 2002.01.22 03:20
    안녕하세요. 최용일입니다.

    스트림의 CopyFrom메소드를 쓰세요...

       MS := TMemoryStream.Create;
       FS := TFileStream.Create('c:1.txt', fmOpenRead);
       RS := TFileStream.Create('C:12.txt',  fmCreate);
       MS.CopyFrom(FS, 0);
       RS.CopyFrom(Ms, 0);
       FS.Free;
       RS.Free;
       MS.Free;

    ^^ 항상 즐코하세요...

  • Profile
    윤도상 2002.01.22 03:48
    그런데요?
       MS.CopyFrom(FS, 0); 라고 하면 FS.Position의 0~FS.Size까지 모든
       값이 복사되잖아요.
       그렇지 않구  중간정도 FS.Position = 50~100까지만 MS로 쓰려면 어떻게
       해야 하나요?
    제발 한번만 더 알려주세요~~



  • Profile
    최용일 2002.01.22 04:11
    Position설정하고 Count넣어서 하세요...

    Fs.Position := 50;
    MS.CopyFrom(FS, 51);
    RS.CopyFrom(Ms, 0);

  • Profile
    이중철 2002.01.22 01:43
  • Profile
    이중철 2002.01.22 01:44
    저도 이유는 모르는데
    메모리스트림에 아무리 write해도 sersize해도 size는 0
    이더라구요..
    그것마 바꾸면 될거에요.