Guardar en variables los datos de archivo .txt

Hola amigo, disuculpa que te moleste pero necesito de tu ayuda.
Lo que pasa es que tengo un formulario en html, con javascript capturo los datos y genero un archivo .txt que es donde los guardo.
Ahora el problema que tengo es que necesito crear una función en un archivo php que se encargue de leerme el archivo .txt generado para guardar los datos en variables y de ahí pueda hacer uso de ellos, como mandarlos a la guardar a la BD.
Espero me puedas ayudar, gracias
Saludos

1 respuesta

Respuesta
1
Tienes que hacer el paso inverso, usando para ello otro ActiveX para leer del fichero. El código que te paso sirve si el fichero de texto a leer tiene el formato más o menos así:
nombre=Charlie
apellido=Brown
Después de ejecutar la función que viene abajo, podrás usar las variables javascript "nombre" y "apellido", como si las hubieras definido tú mismo a mano:
function leeVariablesDeArchivo(filename){
  var fso, a, ForReading;
   ForReading = 1;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   file = fso.OpenTextFile(filename, ForReading, false);
   var linea, pos, variable, valor;
   while( (linea=file.readline())!=null){
      pos = linea.indexOf("=");
      variable = linea.substring(0,pos);
      valor = linea.substring(pos+1);
      eval("var " + variable + "='" + valor + "';");
   }
   file.Close();
}
Hola amigo, disculpa que te vuelva a molestar.
¿Pero la función que pones la tengo que aplicar en javascript pero en un archivo html? Es que yo necesito que lo haga en archivo php, como le hago para implementarlo, por favor ayudame, gracias por tu apoyo.
Por cierto me gustaría que me indicaras donde mandas a llamar al archivo .txt dentro de la función y aclararme si el archivo php con la función y el archivo .txt deben de estar en alojados en un servidor o de manera local por que esa es la forma en que debe de funcionar.
Gracias y disculpa tantas preguntas.
Saludos.
Una página php es una página html que contiene dentro código php. Antes de meter tu código php, mete la función javascript que te paso, entre tags
<head>
</head>
De tu página.
En la función que te paso, le tienes que pasar como parámetro la ruta del archivo que quieres leer, por ejemplo:
<script> leerVariablesDeArchivo("c:\\variables.txt");</script>
El archivo, por supuesto, debe estar en el local del usuario, al igual que hiciste para escribir el archivo txt (en otra pregunta que me hiciste hace unos días).
Oye amigo entonces se supone que con esta función ya tengo los datos agregados en variables que están idicadas desde el .txt, por ejemplo
nombre=charly
"nombre" seria la variable y "charly" el dato
¿Pero cómo le puedo hacer para imprimir un mensaje y ahí verificar el dato que contiene dicha variable?
Hola amigo disculpa que te siga moletando, lo que pasa es que estaba probando la función en un archivo llamado prueba.html donde la pongo:
<html>
<head>
<script>
alert ("hola");
function leeVariablesDeArchivo("c://datos.txt")
alert ("hola2");
{
alert ("hola3");
var fso, a, ForReading;
ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
file = fso.OpenTextFile(filename, ForReading, false);
var linea, pos, variable, valor;
while( (linea=file.readline())!=null){
pos = linea.indexOf("=");
variable = linea.substring(0,pos);
valor = linea.substring(pos+1);
eval("var " + variable + "='" + valor + "';");
}
alert(nombre);
alert(variable);
alert("hola4")
file.Close();
alert(nombre);
alert(variable);
}
alert(nombre);
alert(variable);
</script>
</head>
<body>
</body>
</html>
Le puse unas alertas para probar donde si entraba pero no me muestra ninguna de ellas, ¿qué podría estar pasando?
Gracias por tu apoyo, saludos
Te paso la página corregida. Tenías un pequeño lío con la función. Una vez que lo he corregido y probado, me he dado cuenta que las variables que se declaraban dinámicamente no eran accesibles una vez que la función se había ejecutado. Por ello, en vez de usar variables javascript, ahora genero campos ocultos que puedes consultar desde javascript:
<html>
<head>
<script>
   alert ("declarando la funcion");
   function leeVariablesDeArchivo(filename){
       alert ("llamada a la funcion");
       try{
            var fso, ForReading;
            ForReading = 1;
            fso = new ActiveXObject("Scripting.FileSystemObject");
            file = fso.OpenTextFile(filename, ForReading, false);
            var linea, pos, variable, valor;
            while( !file.AtEndOfStream){
                  linea=file.readline();
                  pos = linea.indexOf("=");
                  variable = linea.substring(0,pos);
                  valor = linea.substring(pos+1);
                  document.write("<input type='hidden' name='" + variable + "' id='" + variable + "' value='" + valor + "' />");
                  alert ("declarado el campo oculto '" + variable + "' con el valor '" + valor + "'");
             }
             file.Close();
             alert("variables declaradas y listas para ser usadas");
        }catch (e){
               alert("Se ha producido un error: " + e.message);
        }
    }
    alert("funcion declarada y lista para ser usada");
</script>
</head>
<body>
<script>
    leeVariablesDeArchivo("c:\\datos.txt");
    alert(document.all.dato1.value);
    alert(document.all.dato2.value);
    alert(document.all.dato3.value);
</script>
</body>
</html>
Por cierto, que se me ha olvidado decirte que en mi fichero de texto tenía 3 variables que se llaman dato1, dato2 y dato3:
dato1=Este es el valor del dato 1
dato2=Este es el valor del dato2
dato3=Este es el valor del dato3

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas