String.SplitPath, siempre me da error

Aquí puedes preguntar o compartir tus dudas y conocimientos acerca del programa
Pues eso. Tengo un código configurado para que obtenga el nombre de archivo y su extensión mediante String.SplitPath. El problema es que lo hace bien, pero en cuanto salta a cualquier otra función que no tenga nada que ver con esa me generar una cantidad brutal de errores (attemp to call field..."" (a nil value)).

La función que genera estos errores es esta. Y en concreto "File = String.SplitPath(Dir[1]);" . ¿Alguna solución please? :sorry:

local Dir = Dialog.FileBrowse(true, "Import File", _DesktopFolder, "WordPress configuration file (wp-config.php)|*wp-config.php|", "", ".php", false, false);
if Dir[1] ~= "CANCEL" and Dir then
File = String.SplitPath(Dir[1]);

if File.Extension == ".php" and File.Filename == "wp-config" then

Dropped = TextFile.ReadToString(Dir[1]);

NAME = string.match(Dropped,"define%('DB_NAME',%s'(.-)'%)")
INIFile.SetValue(_SourceFolder.."\\WPWizard2.ini", "DB1", "Name", NAME);

end
end

Da mas datos makina... ¿que linea te da error la del "File = String.SplitPath(Dir[1])" ?

Re:

Exacto, justo esa línea. En cuanto elimino esa línea los errores desaparecen.
rafaxplayer escribió:Da mas datos makina... ¿que linea te da error la del "File = String.SplitPath(Dir[1])" ?
Yo no tengo aqui el ams, pero intuyo que el problema viene de este codigo:
Dropped = TextFile.ReadToString(Dir[1]);
NAME = string.match(Dropped,"define%('DB_NAME',%s'(.-)'%)")
INIFile.SetValue(_SourceFolder.."\\WPWizard2.ini", "DB1", "Name", NAME);
Has comprobado que el arrchivo ini existe realmente o la seccion o nombre de valor existen? el resto del codigo parece estar bien
carsonzillo escribió:Yo no tengo aqui el ams, pero intuyo que el problema viene de este codigo:
Dropped = TextFile.ReadToString(Dir[1]);
NAME = string.match(Dropped,"define%('DB_NAME',%s'(.-)'%)")
INIFile.SetValue(_SourceFolder.."\\WPWizard2.ini", "DB1", "Name", NAME);
Has comprobado que el arrchivo ini existe realmente o la seccion o nombre de valor existen? el resto del codigo parece estar bien
Sí, funciona. Es más, el código en sí funciona correctamente y escribe el valor en el INI. El problemas llega al entrar en cualquier otra función, empieza soltar errores sin parar del tipo attemp to call field "" (a nil value) y todo se vuelve loco.

apz please!

Re:

rafaxplayer escribió:apz please!
Un simple ejemplo que acabo de hacer, sin la línea del INI ni nada (solo que haga visible un Label). Como véis sigue mostrando el error.
Cuando exportes la aplicación ya verás como en cuanto se importa el archivo wp-config.php el xbutton de recargar la página muestra un error que antes no mostraba.

http://www.mediafire.com/?i9pb48eubjbemch

a mi no me da error , pero prueva a cambiar la variable File , eso puede crear conflictos.

Eso pense de rafa con la variable File que en el helpfile no dice que sea una palabra reservada por el interprete de comandos, asi que lo deje para el final. Yo no usaria palabras con Table, Filem Registry ...hacer referencia a funciones ya hechas para el ams, si pusieras por ejemplo sFile no tendria que darte problemas haz lo que dice rafax

Editado; porque has puesto un jumpage a la propia pagina 1 usando la accion rapida, porque no creas una pagina 2 para que te recoga los datos creados al importar? hay esto:

Page.Jump("Base de datos (ES)"); donde esta esa pagina no existe con ese nombre de ahi que te de fallo nil porque no la encuentra

Re:

rafaxplayer escribió:a mi no me da error , pero prueva a cambiar la variable File , eso puede crear conflictos.
Solucionado. Poniéndolo como sFile ya funciona correctamente. Gracias!

Re:

carsonzillo escribió:Eso pense de rafa con la variable File que en el helpfile no dice que sea una palabra reservada por el interprete de comandos, asi que lo deje para el final. Yo no usaria palabras con Table, Filem Registry ...hacer referencia a funciones ya hechas para el ams, si pusieras por ejemplo sFile no tendria que darte problemas haz lo que dice rafax

Editado; porque has puesto un jumpage a la propia pagina 1 usando la accion rapida, porque no creas una pagina 2 para que te recoga los datos creados al importar? hay esto:

Page.Jump("Base de datos (ES)"); donde esta esa pagina no existe con ese nombre de ahi que te de fallo nil porque no la encuentra
Pues justo era eso. Con sFile ya funciona correctamente. Con respecto al PageJump con las prisas de copiar el código original se me olvidó quitarlo. Ya está solucionado al renombrar File. Muchas gracias!!