Leer un archivo.ini

De antemano gracias, estoy desarrollando un aplicacion en fox pro 9 con base de datos mysql. Y mi problema es conectar desde un .ini. Lo que me gustaria saber es si se puede leer una archivo.ini donde esta configurado el nombre de la db, el pass, el usuario y el ip del servidor. Porque la forma en lo que estoy haciendo es pasarle directo el valor. En un prg. Ejemplo
PUBLIC lcServidor, lcBaseDatos, lcUsuarioSQL, lcPass, lcCnxStr, lhFile, lsBuffer ,DBCA
lcServidor   = "localhost"
lcBaseDatos  = "syseduc"
lcUsuarioSQL = "root"
lcPass       = "12345"
lcCnxStr = "Driver={MySQL ODBC 3.51 driver};Port=3306;Server=" +;
        lcServidor + ";database=" + ALLTRIM(lcbasedatos) + ;
        ";Uid=" + lcUsuarioSQL + ";Pwd=" + lcPass + ";option=131329;"
WAIT WINDOW 'Conectando... Espere' Nowait    
DBCA = SQLSTRINGCONNECT(lcCnxStr) && ESTABLECER LA CONEXION
IF DBCA < 1
    MESSAGEBOX('Falla en la conexion',0+16,'syseduc')
    RETURN
Endif
En ves de pasarle directo a las variable lcServidor = "localhost" me gustaría que lee del archivo .ini y le pase al variable
porque así, cuando se instala el programa y el ip no es igual con lo que se compilo. Se tiene que compilar de nuevo el ejecutable pero ya con la ip correspondiente. Pero si puede leer de un .ini o .txt. Solo allí noma ya se configura la ip, la db, y todo lo que precisa . Alguien me puede ayudar, si alguien sabe como hacer esto

1 Respuesta

Respuesta
1
Tienes toda la razón es mucho mejor hacer lo que tu indicas, yo lo ago con archivos txt los cuales, me sirven de mejor forma, ya que solo tengo que cambiar un txt y es mucho más fácil que estar cambiando otros archivos si te interesa me indicas y te mando como se hace
Claro que me interesa, ¿me podrías pasar la solución en mi correo? [email protected]
Ok, mira pues la solución es así :
Archivo_ = FILE(".\CTDB.txt")
        IF Archivo_ = .T.
            N_Cadena = ALLTRIM(FILETOSTR(".\CTDB.txt"))
    * Verifica El Archivo y Genera La Conexion        
            Public xcontrol , MsG_Box , Product_Ident
            xcontrol = ""
            MsG_Box  = "Control Cars 2.0 © All Rights Reserved"
            x_Server = ALLTRIM(SUBSTR(N_Cadena,1,(ATC(CHR(13),N_Cadena,1) - 1)))
            N_Cadena = ALLTRIM(RIGHT(N_Cadena,LEN(N_Cadena) - ( ATC(CHR(13),N_Cadena,1) + 1 )))
            x_UID =    ALLTRIM(SUBSTR(N_Cadena,1,(ATC(CHR(13),N_Cadena,1) - 1)))
            N_Cadena = ALLTRIM(RIGHT(N_Cadena,LEN(N_Cadena) - ( ATC(CHR(13),N_Cadena,1) + 1 )))
            x_PWD =    ALLTRIM(SUBSTR(N_Cadena,1,(ATC(CHR(13),N_Cadena,1) - 1)))
            N_Cadena = ALLTRIM(RIGHT(N_Cadena,LEN(N_Cadena) - ( ATC(CHR(13),N_Cadena,1) + 1 )))
            x_Change = CHRTRAN(N_Cadena,CHR(13),"*")
            x_DBaseName = Substr(x_Change,1,ATC("*",x_Change,1)-1)
            lcStringCnxLocal = "DRIVER={MySQL ODBC 3.51 Driver};" + ;
            "SERVER=" + x_Server + ";" + ;
            "UID=" + x_UID + ";" + ;
            "PWD=" + x_PWD + ";" + ;
            "DATABASE=" + x_DBaseName + ";" + ;
            "OPTIONS=131329;"
            Sqlsetprop(0,"DispLogin" , 3 )
             xcontrol = SQLSTRINGCONNECT(lcStringCnxLocal)    
Así deberías de hacerlo, donde tu archivo tiene que estar así
Server
Usuario
Password
Base de datos
Ejemplo
server1_1
root
root_clave
base_1
Pues me sirvió mucho y me funcio perfecto. Le falto la terminación el IF con ENDIF je je, pero eso es un detalle, lo importante es que me funciono y es genial. Mil gracias y cualquier cosa en que pueda ayudar. Estoy disponible. Porque no solo fox es el lenguaje que se. tengo conocimiento en Java, delphi, visual, php y otro más. Es que fox el lenguaje que la facultad en donde estoy y no hay forma de hacer en otro, y tengo que entregar un trabajo en esa aplicación. Gracias
Jajajaja no te preocupes ya sabes que estamos para servir, y en donde pueda ayudarte lo are, bueno si es que lo se jajaja pero espero que te sirva de la mejor forma y que todo te salga bien y si claro, yo también soy programador de Java, Fox, Delphi, Pascal, Scheme, Dr.Scheme, Scratch y un poquito de C# jajajaja en lo que necesites solo comenta y te ayudare si puedo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas