2012-07-19 3 views
0

가능한 복제를 자원하기 :
how to store settings in resource델파이 레코드

나는 등 문자열, 정수,이 기록은 나중에 읽어됩니다 파일의 설정으로 사용됩니다와 기록을 가지고있다. 레코드를 바이너리 데이터 (또는 문자열)로 변환하고 RCDATA에 저장 한 다음 다시 레코드로 읽을 수 있습니까? 가능하면 네이티브 코드 및/또는 WinAPI 만 가능합니다. 당신의 도움을 주셔서 감사합니다. RCDATA 소개

+0

감사합니다 :) 스트림없이 가능합니까? –

+1

물론 가능합니다. 스트림 기록 기능을 사용자가 선택한 다른 지속성 메커니즘과 동일한 기능으로 대체하십시오. –

+0

CopyMemory 및 ReadMemory를 사용할 수 있습니까? –

답변

1

:

내가 "리소스 편집기 오픈 소스 델파이" 를 구글을 요청하고 http://melander.dk/reseditor/

이 프로그램은 반드시 읽고 자원을 쓸 수있는 나에게 말했다.

페이지의 바닥 글에는 또한 할 수있는 3 개의 오픈 소스 델파이 프로그램에 대한 링크가 포함되어 있습니다.

그래서 내가 원하는 것을 찾을 수 있기를 바랍니다. 다른 유용한 코드 더미 중에 :-)


하지만 - 사용하려는 RCDATA는 무엇입니까? 무슨 파일? 일부 DLL? 또는 자신의 프로젝트 EXE? RCDATA는 쓰기가 아닌 읽기 용입니다. 전형적인 용도는 아닙니다. DLL 또는 EXE가로드되면 새로운 RCDATA 파일에 쓸 수있는 권한이 부여되지 않습니다. 그리고 실행중인 EXe는 항상 열려 있습니다.


바이너리로 전환하는 방법은 데이터 유형에 매우 의존적입니다. 데이터를 표시하기 전에 아무도 확실하게 말할 수 없습니다.

대부분의 게으른 접근 방식은 다음과 같습니다. 1) TComponent에서 미러 클래스를 만들고 레코드 필드를 미러링하는 게시 된 속성으로 만듭니다. 레코드에서 해당 속성을 할당하고 TComponent.SaveToStream을 수행합니다. 2) Progdigy의 JsonObject를 사용하여 JSon 형식의 텍스트 파일을 만듭니다. 3) 일부 XML을 사용하여 저장/읽습니다. 예를 들어 TXMLDocument는 상위 델파이 버전 (그러나 nil Owner로 작성된 경우에는 문제가 있음) 또는 Jedi CodeLib에 XML이 있습니다.

Torry.net에서 많은 XML 또는 JSON 라이브러리를 검색 할 수 있습니다.

그러나 무엇보다 "Google은"Delphi에서 직렬화 "하고 문제 및 해결 방법을 자세히 설명하는 자습서를 제공합니다.