PDA

Ver la Versión Completa : Problema al leer .ini


PabloTech
16-08-2021, 20:13:50
Hola... Estoy teniendo problema en Windows 7/10 con la apertura del INI. No entiendo cuál puede ser el problema. Por suerte, el ejecutable en el cliente funciona pero en dos máquinas virtuales que yo tengo, no funciona.


{ Antes asigno la ruta y el archivo en ArchivoCnx 'C:\Aplicacion\Datos\Config.dsn' }
IniFile := TIniFile.Create(ArchivoCnx);
try
{ Sentencias varias }
except
Application.MessageBox(PWideChar('Información de conexión incompleta. File not found: ' +
ArchivoCnx), 'Conexión', MB_ICONERROR);
Application.Terminate;
end;


¿Alguien tiene idea de cuál puede ser el problema?

manelb
17-08-2021, 07:18:41
Yo he tenido alguna vez problemas con ficheros ini por haberse colado algún carácter extraño en el fichero.

Te recomiendo lo abras con un editor que te permita leer incluso caracteres ocultos.

De todas formas no especificas cual es el problema….
¿Devuelve algún error al intentar abrirlo?

Espero puedas resolverlo
Saludos a todos

egostar
17-08-2021, 22:54:38
Hola...

...¿Alguien tiene idea de cuál puede ser el problema?

Abre tu archivo INI con el Bloc de Notas y guárdalo como ANSI, nos comentas....

Saludos

escafandra
18-08-2021, 22:39:31
Lo primero que yo miraría es la ruta que contiene ArchivoCnx y si corresponde con lo que debe.


Saludos.

delphi.com.ar
19-08-2021, 18:34:07
No entiendo cuál es el problema... ¿Se produce un error? ¿Cuál?... ¿No carga la información como lo esperas?...

Experimenté recientemente que aplicaciones Win32 (en VB6), al leer un archivo INI en Win10, leían para cada sección un elemento "0", cosa que no hacía en WinXP.

PabloTech
21-08-2021, 02:07:53
Hola... Tienen algo de razón. Ya capturé el error: Dice:

Code: 126, No se puede encontrar el módulo especificado... :confused:

También traté varias de veces de convertir el tipo del archivo a ANSI pero no funciona en Windows 10. Cada vez que lo vuelvo a abrir, vuelve a mostrarse como UTF8 y lo intenté tanto con el Bloc de Notas como con el NotePad ++

delphi.com.ar
21-08-2021, 03:43:08
Code: 126, No se puede encontrar el módulo especificado...

El error "The specified module could not be found" es del sistema operativo, y sucede cuando se intenta cargar una librería dinámica (DLL) y esta no existe en las rutas esperadas. Ahora me surgen varias dudas:


¿Con qué versión de Delphi compilaste el proyecto?
¿Estás usando alguna librería extendida para leer los INI?
¿Estás compilando tu proyecto en varias librerías o es solo un EXE monolítico?
¿Estás completamente seguro que el problema es la carga del INI, y no de otra línea de ejecución previa?
¿Probaste correr el proyecto con compatibilidad para Windows XP?


Espero te sea de utilidad, saludos.

PabloTech
12-09-2021, 04:03:54
Estimados amigos...

Muchas gracias por haberme ayudado a pensar el problema. Efectivamente, mi ejecutable estaba buscando una dll y no me daba cuenta. La agregué en la carpeta de ejecutable y listo.

Saludos...

PabloTech
06-02-2022, 05:05:18
Hola amigos...

No lo van a poder creer. Me volvió a suceder lo mismo y esta vez voy a registrar aquí la solución.

Mi problema es que en el cliente me volvió a dar el mismo error. Pero el mensaje no especificaba el motivo. Empecé a poner try... except hasta encontrar la sentencia que generaba el error y voilá... El componente de conexión daba error cuando intenta conectarse. Y es porque estaba utilizando las librerías del motor de PostgreSQL. Luego de agregar las dlls de PostgreSQL en la carpeta del EXE surgió otro error. No se encontraba MSVCR120.DLL. Lo busqué y lo copié en la misma carpeta del EXE. Y problema solucionado...

Gracias por la comprensión... :)