Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

\n en un archivo ".INI"

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: \n en un archivo ".INI" Responder citando

Hola a todos. Estpy trabajando con archivo de configuración .INI donde tengo parejas clave=valor que necesito sacar por pantalla.

El problema esta en que no se interpretar los caracteres especiales del apartado valor, para que cuando en el archivo .INI aparezca el valor
Código:
 Hola mundo. \nEstoy aqui


aparezca como
Código:
 Hola mundo.
Estoy aqui

y no se vea el \n

Alguien me puede hechar una mano?

Gracias de antemano
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Personalmete en un fichero INI yo no pondría códigos de control, que la fin y al cabo el \n es un salto de línea -LF-.

De todas formas, esos carácteres \r\n (Retorno de carro y Avance de línea -CR LF-), los elementos de Builder que admiten más de una línea los interpretan sólos. Prueba una cosa:
Código:
ShowMessage("1ª línea\n2ª línea");

Verás como aparecen dos líneas en el cuadro diálogo sin necesidad de hacer nada más.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

muchas gracias por esa solucion. Estoy de acuerdo de que apareceria en 2 lineas, pero para ello tengo que tener dos entradas en el INI, y estaba interesado de que fuera una sola.

Aunque si no puede ser, tendré que hacerlo así.

Muchas gracias de nuevo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Yo no digo que no se pueda; no lo he probado nunca. Pero me temo que al grabar la entrada lo interpretará como lo que és e insertará en el INI un salto de línea.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Ese no seria problema, ya que el ini no se modificaria nunca. Solo necesito leer de las secciones e interpretar el \n como un salto
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Haz una coas: Cuando vayas a grabar el fichero, ANTES de poner la instrucción WritePrivate... donde haya un salto de línea (\n) inserta un carácter que tú quieras, y al leerlo haz lo inverso. Me explico:
    Supón que tienes que grabar en el fichero INI una instrucción como la que ponías antes (Hola mundo. \nEstoy aqui), que esté guardado por ejemplo en un AnsiString. Yo haría algo así:
    Código:
    AnsiString cValor = "Hola mundo. \nEstoy aqui";
    AnsIString cAuxil = StringReplace(cValor, "\n", "|", TReplaceFlags() << rfReplaceAll);
    WritePrivateProfileString("SECCION", "Clave", cAuxil.c_str(), IniFile);
    Con esto la línea de la clave en el fichero INI quedaría así:
    Código:
    Hola mundo. |Estoy aqui
    Y para leerla, al revés:
    Código:
    char cAuxil[128] = "\0";
    AnsiString cValor;
    GetPrivateProfileString("SECCION", "Clave", "", cAuxil, sizeof(cAuxil), IniFile);
    cValor = StringReplace(AnsiString(cAuxil), "|", "\n", TReplaceFlags() << rfReplaceAll);
Creo que te valdría.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.