2009-07-18 2 views
3

저는 Devexpress에서 QuantumGrid 6를 사용하고 있습니다. 그리드 설정을 XML 구성 파일에 저장해야합니다. 안타깝게도 그리드는 XML을 저장소 옵션으로 허용하지 않습니다. 그러나 설정을 스트림으로 내보낼 수는 있습니다.스트림을 인코딩하여 XML 파일에 저장할 수있는 방법은 무엇입니까?

스트림으로 내보내고 스트림을 텍스트로 변환하여 xml 값으로 저장하려고합니다. 나는 텍스트가 인쇄 가능한 문자들만 포함해야한다고 생각하고 그것이 어떤 식 으로든 압축 되었다면 멋질 것입니다.

누군가 스트림을 인코딩하는 방법을 제안 할 수 있습니까?

답변

3

Indy Misc 팔레트의 표준 IdEncoderMIME/IdDecoderMime을 사용하십시오. 스트림을 인코딩하는 몇 가지 방법이 있습니다.

3

내가 만든 SimpleStorage는 XML 저장소 기반 프레임 워크입니다. 여기에서 다운로드 할 수 있습니다.

SimpleStorage Download

그것은 당신 같은 문제를 해결하기 위해 만들어졌다.

SrcStorage.Ensure('Data').Filter('gzip').AsBinary.LoadFromStream(MemoryStream);

이뿐만 아니라 자동 base64로 데이터를 인코딩하지만 당신은 즉석에서 gzip을 할 수 있도록 그것은 또한 필터를 지원합니다 : 당신은 단 한 줄의 코드도 필요 당신이 원하는 수행합니다.

그래서 코드의 세 줄 당신이 모든 작업을 수행 할 수 있습니다

SrcStorage := CreateStorage('BinaryStorage'); SrcStorage.Ensure('Data').Filter('gzip').AsBinary.LoadFromStream(MemoryStream); SrcStorage.SaveToFile('Data.xml');

그것은 OmniXML에게 아주 좋은 델파이 XML 라이브러리를 사용합니다. 다운로드 페이지에서 모든 정보를 찾을 수 있습니다.

0

DIMimeStreams 인코딩을 사용하여 tStringStream으로 인코딩 한 다음 stream.datastring을 특정 요소의 텍스트 부분으로 배치했습니다. 암호화를 추가하려면 LockBox에있는 루틴을 추가하여 MIME 단계 이전에 스트림을 암호화하십시오. 2009 년에 컴파일 된 LockBox의 최신 버전은 songbeamer 웹 사이트에서 제공됩니다. 또한 스트림으로 압축하는 거의 모든 압축 루틴을 사용하여 압축 한 다음 mime 단계를 실행합니다.

관련 문제