2012-11-16 3 views
3

다양한 프로그램 데이터를 Delphi 프로젝트에 저장하고로드하려고합니다. 이 데이터는 간단한 문자열에서보다 복잡한 반복 구성 객체 데이터에 이르기까지 다양합니다.Delphi에서 구성 데이터를 저장하기위한 옵션은 무엇입니까?

우리 모두는 ini 파일이 프로그램 데이터를 저장하는 빠르고 쉬운 방법을 제공하지만 키 - 값 표현으로 제한된다는 것을 알고 있습니다.

XML은 종종 이와 같은 요구 사항에있어 선택의 무기이지만 XML에 대한 대안이 있는지 알고 싶습니다.

최근 델파이에 대해 superobject이 발견되었습니다. XML보다 처리가 훨씬 쉬워 보입니다. "비 웹 작업"을 위해 JSON을 사용하는 것에 대해 언급 할 내용이 있습니까?

데이터 저장소를 지원하고 일반 텍스트 (예 : ini, xml, json)로로드하는 다른 옵션은 Delphi에서 알고 있습니까?

+1

저는 개인적으로 YAML을 사용하지만 쉽게 사용할 수있는 파서/이미 터는 없습니다. 그렇지 않으면 주요 후보자를 나열했습니다. –

+0

개인적으로 필자는 XML이 구성 데이터에 대해 가장 표현 방법이라고 생각합니다. 위쪽은 XML 파일을 쉽게 편집 할 수 있다는 것입니다. 이 정확한 목적을 위해 XML 스트리밍 라이브러리에 객체/객체에 대한 내 자신의 XML을 만들었습니다. – whosrdaddy

+1

TComponent에서 TConfig 객체를 파생 시키면 VCL 내장 스트리밍을 사용할 수도 있습니다 (사람이 읽을 수있는 형식으로 바이너리로서) 메커니즘. – iamjoosy

답변

6

실제로 어떤 저장 형식 (ini, xml, json, 무엇이든)을 선택하는 것은 중요하지 않습니다. 모든 요구에 맞는 추상 클래스를 작성한 다음 구체적인 클래스와 구체적인 저장 형식에 대해 생각하고 구현하기 쉽고 사람이 쉽게 읽을 수 있도록 결정하십시오.

경우에 따라 구성 측면 (글로벌, 머신, 사용자).

구성 클래스를 사용하면 사용자 정의가 아닌 경우 전역을 사용하여 쉽게 혼합 할 수 있으며 저장 형식 (DB의 전역 구성, 레지스트리의 컴퓨터 구성, 파일의 사용자 구성)을 혼합 할 수도 있습니다.

2

그리운 INI 파일이 TIniFile 내장하고 IniFiles 단위 TMemIniFile 클래스와 함께 나를 위해 잘 작동

INI 파일의 장점;

  1. 바이너리가 아닙니다.
  2. 레지스트리 설정보다 컴퓨터간에 쉽게 이동할 수 있습니다.
  3. 쉽게 확인하고 볼 수 있습니다. XML과는 달리
  4. , 그것은 간단하고

  5. INI 파일을 수동으로 또는 도구 중 하나를 쉽게 수정할 수 있습니다 그것은 잘못된 JSON 또는 완전히 읽을 XML을 쉽게 만들 수있는 반면, 거의 방탄 있습니다 는, 그것의

  6. 사람이 읽을 수 있어요 INI 파일의 "하나의 섹션 손상"이상을 수행하기가 어렵습니다. 단순함이 이깁니다.

단점 : XML 및 레지스트리가 더 많거나 적은 "두 가지 수준"섹션과 항목의 달리

  1. .

  2. TMemIniFile

    는 제어 방식으로 결과를 정렬하지 않습니다. 나는 종종 인간이 생성한다면 아이템의 순서를 제어 할 수 있기를 바란다. TMemIniFile은 순서를 유지하지 않기 때문에 나는 TMemIniFile만큼 사랑하지 않는다. 일반 평범한 사랑 TIniFile.

+0

TMemIniFile이 마음에 들지 않으면 자신 만의 InMemory CustomIniFile을 구현할 수 있으며, SubSections를 사용하면 XML과 JSON에 조금 더 가깝다. –

+0

... :-) 구두점이 훨씬 적지 만. –

관련 문제