표준 Windows .ini 파일이 주석을 허용합니까?


92

Windows ini 파일에서 주석이 허용됩니까? (... GetPrivateProfileString api 함수를 사용하여 읽는 다고 가정 합니다 ...)

[Section]
Name=Value   ; comment

; full line comment

.INI 파일 형식에 대한 적절한 사양이 어디에 있습니까?

답장을 보내 주셔서 감사합니다 . 내가 관심있는 것은 Windows API 호출에서 읽는 형식 일뿐 입니다. 다른 구현에서 주석을 허용한다는 것을 알고 있지만 특히 알아야 할 MS Windows 사양 및 구현입니다.


1
API는 Value와 Comment를 반환합니다. SemiColon을 찾아서 읽거나, 정규 표현식을 사용하여 이것을 읽거나 제거하거나;
RoguePlanetoid

7
@RoguePlanetoid ;문자 를 찾기위한 정규식 ? 진심!?
IInspectable

1
@IInspectable 정규식을 사용하여 주석을 읽을 수만 있으므로 세미콜론 뒤의 요소를 추출하거나 내 주석에서 언급했듯이; 대안을 제공하는 하나의 존재에 대한 코멘트 자체 또는 모양을 추출하기 위해 난 그냥 세미콜론이 있다면 불완전한 의견이 있었다보고, 내 댓글 부가 가치를 생각
RoguePlanetoid

답변:


96

다음에 대한 Windows INI API 지원 :

  • 줄 주석 : 예, 세미콜론 사용;
  • 후행 주석 : 아니오

신뢰할 수있는 소스는 INI 파일에서 값을 읽는 Windows API 함수입니다.

GetPrivateProfileString

초기화 파일의 지정된 섹션에서 문자열을 검색합니다.

이유는 "전체 줄 주석" 요청 된 값이 존재하지 않기 때문에 작업이다. 예를 들어, 다음 ini파일 내용을 구문 분석 할 때 :

[Application]
UseLiveData=1
;coke=zero
pepsi=diet   ;gag
#stackoverflow=splotchy

값 읽기 :

  • UseLiveData: 1
  • coke: 없음
  • ;coke: 없음
  • pepsi: diet ;gag
  • stackoverflow: 없음
  • #stackoverflow: splotchy

업데이트 : 저는 숫자 기호 (#)가 의사 줄 주석 문자라고 생각했습니다. 선행 #을 사용하여 숨기는 stackoverflow이유는 이름이 stackoverflow더 이상 존재하지 않기 때문 입니다. 그리고 세미콜론 ( ;) 줄 주석 이라는 것이 밝혀졌습니다 .

그러나 후행 주석은 지원되지 않습니다.


3
매우 유용한 예이지만 " '전체 줄 주석'이 작동하는 이유는 요청 된 값이 존재하지 않기 때문입니다."라는 문구 구문 분석하기 어렵습니다. Windows INI 구현에는 키 / 값 쌍 (있는 경우) 앞에 세미콜론이 필요하며, 그렇지 않으면 값의 일부로 간주됩니다.
GravityWell 2014 년

@Roddy 당신이 맞아요. 나는 사용에 너무 집중 #해서 ;. 세미콜론이 실제로 줄 주석임을 지적하도록 답변을 수정했습니다.
Ian Boyd

29

INI 파일에서 주석을 보았으므로 그렇습니다. 를 참조하십시오 이 위키 백과 문서 . 공식 사양을 찾을 수 없었지만, 제가 기억하는 것처럼 많은 게임 INI 파일이 이것을 가지고 있기 때문에 그것이 주석에 대한 올바른 구문입니다.

편집하다

API는 Value와 Comment를 반환하고 (내 회신에서 이것을 언급하는 것을 잊었습니다) INI 파일을 구성하고 예제를 만들고 이에 대한 API를 호출하면 (주석과 함께) 이것이 어떻게 반환되는지 볼 수 있습니다.


1
소스를 사용할 때 가장 권위있는 소스를 사용하고 지원 소스를 사용하는 것이 더 합리적입니다.
Mike Collins

1
후에도 칠년 - 지적하고 너무 늦게 결코 - 좋은 생각 물론
RoguePlanetoid

9

라인 시작 부분에 세미콜론 사용 --- >>; << ---

전의.

; last modified 1 April 2001 by John Doe
[owner]
name=John Doe
organization=Acme Widgets Inc.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.