문제

나는 Visual Studio 2008에서 게임을 구축하고 있으며 레벨을 구축하기 위해 두 가지 유형의 파일을 갖게 될 것입니다 (실제로는 그 두 가지가 내 질문에 중요한 유일한 것입니다). 하나는 A 레벨의 내용을 지시하고 다음과 같이 보입니다.

levelName = "샘플 레벨"

Object1Type = "CustomObject"

Object1file = "widefloor_df"

Object1Position = 600,600

Object2Type = "Circle"

Object2Position = 550, 500

Object2mass = 5

등.

다른 하나는 사용자 정의 객체의 속성을 지시하고 다음과 같은 것을 보게됩니다.

이름 = "넓은 바닥"

질량 = 1

geometrymap = "widefloor_gm"

isstatic = true

등.

나는 Regexes에 익숙하지 않습니다 (읽기 : 나는 쉽게 이해하기에는 라인 노이즈를 너무 많이 좋아하기 때문에 좋아하지 않습니다). 그리고 나는 수많은 톤을 사용하는 것보다 더 쉬운 방법이 있는지 궁금합니다.

편집 : 나는 내가 뭔가를 잊었다는 것을 알고 있었다! 나는 정말로 XML 파일을 싫어하기 때문에 그것들을 사용하는 것을 정말로 선호합니다 (waaaaaaaay 너무 장황합니다). 편집 2 : 나는 내가 생각해 낸 형식을 좋아하고 변경하지 않는 것을 선호합니다.

도움이 되었습니까?

해결책

XML 파일을 사용하는 것은 어떻습니까? xmlreader 및 xmlwriter 객체를 사용하여 쉽게 읽고 쓸 수 있으며 Regex를 전혀 다룰 필요가 없습니다.

<Level name="Sample Level">
   <Object type="CustomObject" file="WideFloor_DF" positionX="600" positionY="600" />
   <Object type="Circle" file="WideFloor_DF" positionX="500" positionY="500" mass="5" />
</Level>     

다른 팁

어쨌든 파일을 인간 읽을 수있는 형식으로 사용하려는 경우 XML을 사용하지 않는 이유는 무엇입니까?

파일 형식을 제어 할 수있는 경우 XML 또는 INI 파일과 같은 기존 파서로 무언가를 시도 할 수 있습니다.

위 형식으로 판매되면 다음과 같은 도구를 사용할 수 있습니다. 법률 당신을 위해 당신의 파서를 생성합니다.

하나의 대체 접근법은이 구성 데이터를 모두 보유 할 수있는 속성/컬렉션이있는 클래스를 정의하고 [직렬화 가능]하는 것일 수 있습니다. 그런 다음 예제 구성을 채우고 파일로 직렬화 한 다음 수작업으로 편집 할 수있는 완전한 XML 구성 파일이 있습니다. 구성을 사용할 준비가되면 XML 파일을 앱의 구성 객체로 다시 데려다주십시오.

해당 파일 형식 사용을 절대적으로 고집하면 파일을 라인별로 읽고 '='의 왼쪽에서 물건을 가져 와서 사전에 키와 모든 것을 '='값으로.

그러나 XMLDocument 객체와 함께 XML 문서를 사용하는 위의 답변을 반영해야합니다. LINQ에서 XML을 살펴 보셨습니까?

글쎄, 내가 당신의 질문을 이해한다면, 당신은 파일의 내용을 구조화하여 구문 분석이 훨씬 쉬워 질 수있는 방법을 원합니다. XML은 좋은 선택이며 XSD는 XML 파일의 내용, LINQ를 설명합니다. XML에게 C#에서 읽는 것이 좋습니다.

XML을 사용하는 경우 파일을 객체로 직접 제외시킬 수 있으므로 전혀 구문 분석 할 필요가 없습니다.

이진을 직렬화하지 않겠습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top