Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14909] Re:파일 전처리 문제
정영훈 [allinux] 1984 읽음    2013-12-17 22:35
질문에 어패가 있는 듯 합니다.

파일명이라는 것은 파일시스템에 쓰여져야 생성되는 것 입니다. 같은 파일에 덮어쓰게 되면 사이즈가 변경되겠구요.
즉 단순히 파일명을 넘기기 위해서는 꼭 파일시스템에 쓰여져야 합니다.

만약 dll 의 함수를 수정할 수 있다면 인자를 IStream 으로 받고 델파이의 TMemoryStream 으로 파일을 메모리에서 작업후 TStreamAdapter 으로 COM object(IStream )로 생성하여 스트림을 넘길 수 있을 것 같습니다.

물론 프로그래밍적인 해결 방법은 아닐 수 있지만 질문자께서 언급한 물리 메모리를 디스크 같이 사용하는 램디스크도 있습니다.

김동수 님이 쓰신 글 :
: 안녕하십니까?
:
: 델파이 초보입니다.
:
: DLL의 어떤 함수에 파일 이름을 전달해주게 되어 있는데, 그 전에 처리를 하고 싶습니다.
: 예컨데 DLL의 함수는 abcfun(PChar(file.name), ....); 이런 식으로 파일 이름을 넘겨 주게 되어 있습니다.
:
: 저는 형편상 이 파일에 사전에 일정 작업을 한 후 넘겨 주고 싶은데,
: 그러자니 저 파일을 먼저 읽고, 조작하고, 다시 새로운 파일로 이름을 바꾸어 저장한 후 그 이름을 넘겨주어야 합니다.
:
: 이 방법을 써도 되지만 그렇게 되면 디스크에 그 흔적이 남을 테고,
: 너무 거친 방법이 아니겠는가 싶습니다.
: 어쨌건 프로그램 내에서 흔적 없이 처리하고 싶습니다.
: 특정 일부 내용이 아니라 파일 이름을 DLL에 넘겨주어야 하는데 고민이 있는 것입니다.
:
: 가상으로 메모리를 디스크인 양 할당 처리한다든가,
: 또는 다른 스마트한 방법이 있을까 싶어 이곳에 여쭙습니다.
:
: 고맙습니다.
:

+ -

관련 글 리스트
14906 파일 전처리 문제 김동수 1807 2013/12/16
14909     Re:파일 전처리 문제 정영훈 1984 2013/12/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.