2009-09-04 75 views
46

¿Se permiten comentarios en archivos ini de Windows? (... asumiendo que usted está utilizando las funciones de la API GetPrivateProfileString para leerlos ...)¿Los archivos .ini estándar de Windows permiten comentarios?

[Section] 
Name=Value ; comment 

; full line comment 

Y, ¿existe una especificación adecuada del formato de archivo .INI en cualquier lugar?

Gracias por las respuestas - Sin embargo, tal vez no era lo suficientemente claro. Es solo el formato leído por las llamadas a la API de Windows que me interesa. Sé que otras implementaciones permiten comentarios, pero es específicamente la especificación e implementación de MS Windows de la que necesito saber.

+1

La API devuelve el valor y el comentario, solo tiene que buscar el SemiColon y leer, o quitar este cuando encuentro, usando una expresión regular o simplemente buscar el; – RoguePlanetoid

+6

@RoguePlanetoid ¿Una expresión regular para encontrar un carácter ';'? ¿¡Seriamente!? – IInspectable

+1

@IInspectable Podría usar la expresión regular para leer el comentario solo para extraer el elemento después del punto y coma, o como mencioné en mi comentario o buscar el; dando la alternativa de extraer el comentario en sí mismo o buscar la presencia de uno, pensé que mi comentario agregaba valor, solo ver si un punto y coma estaba allí era un comentario incompleto – RoguePlanetoid

Respuesta

22

He visto comentarios en archivos INI, entonces sí. Por favor, consulte this Wikipedia article. No pude encontrar una especificación oficial, pero esa es la sintaxis correcta para los comentarios, ya que muchos archivos INI del juego tenían esto como lo recuerdo.

Editar

La API devuelve el valor y el comentario (se olvidó de mencionar esto en mi respuesta), acaba de construir y ejemplo de archivo INI y llamar a la API de esta (con comentarios) y se puede ver cómo esto es devuelto

+1

Al usar las fuentes, tiene más sentido usar la fuente más autorizada y luego cualquier fuente de apoyo. –

+1

Claro que es una buena idea, nunca es tarde para señalarlo, incluso después de siete años – RoguePlanetoid

44
soporte de la API

INI de Windows para:

  • línea Comentarios: sí (con punto y coma ;)
  • comentarios finales: Sin

La fuente autorizada es la función API de Windows que lee los valores de los archivos INI

GetPrivateProfileString

recupera una cadena a partir de la sección especificada en un archivo de inicialización.

La razón "línea completa comenta" trabajo se debe a que no existe el valor solicitado.Por ejemplo, al analizar los siguientes ini contenido del archivo:

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

La lectura de los valores:

  • UseLiveData: 1
  • coke: no presente
  • ;coke: no presente
  • pepsi: diet ;gag
  • stackoverflow: no presenta
  • #stackoverflow: splotchy

actualización: Yo solía pensar que el signo de número (#) era un carácter de pseudo-línea de comentario. La razón por la que se utilizan # trabajos principales para ocultar stackoverflow es porque el nombre stackoverflow ya no existe. Y resulta que punto y coma (;) es un comentario de línea.

Pero no hay soporte para los comentarios finales.

+3

Gracias. Pero ¿por qué '' coke' no está presente? Creo que sería ... – Roddy

+1

Ejemplos muy útiles, pero me parece que la redacción _ "El motivo por el que los comentarios de la línea completa funcionan es porque el valor solicitado no existe" _ difícil de analizar. Me gustaría aclarar que la implementación de Windows INI requiere el punto y coma antes del par clave/valor (si está presente), de lo contrario se considera parte del valor. – GravityWell

+0

@Roddy Tienes razón. Estaba tan concentrado en usar ** '#' ** que no le presté atención al ** ';' **. Se corrigió la respuesta para señalar que el punto y coma en realidad es un comentario de línea. –

Cuestiones relacionadas