Tengo un archivo de texto en el cliente que deseo leer linea por linea para poder procesar cierta información pero al realizar un while for endatstream me sale un mensaje de que se ha sobrepasado el fin de archivo y termina sale sin terminar de procesar toda la información, necesito ayuda pues me parece que lo estoy haciendo bien.
1 Respuesta
Respuesta de gandalf26
1
1
gandalf26, Trabajo en desarrollo web en general, html, css, etc
Nunca uso ActiveX, así que no se como ayudarte. Según veo, te falta un "{" después del do (en el do... while). Según entiendo yo, falta controlar llegar al tipoco EOF (end of file) de cualquier lenguaje de programación que use ficheros, pero no se como va. He buscado por ahí y he encontrado algún ejemplo: http://www.codeproject.com/jscript/oojsgrep.asp http://oldlook.experts-exchange.com:8080/Web/Web_Languages/XML/Q_20779424.html Se basan en ver que la linea que lees no es null, pero no he conseguido que me funcione... No se como ayudarte, tal vez mira esos ejemplos y a lo mejor encuentras la manera de hacerlo. También he visto que en algunos sitios usan un ReadAll()... que tal vez te pueda venir bien (?). Siento no poder ayudarte más.
Muchas gracias por la ayuda y aquí va el código, el problema está cuando finaliza la lectura del archivo plano y me da un mensaje de fin de archivo y no ejecuta más instrucciones y se trunca Gracias otra vez <html> <head> <br> <title> "Impresión de datos de Archivo Plano" </title> <script language="JavaScript"> function verarchivo() { var archivo; var linea; var codofi,cert,tippag,cuedeb,valor,fecing,codpro,codace,espacio var valorint, parcialstr, totalvalor = 0, espacio = " " var fso = new ActiveXObject("Scripting.FileSystemObject"); archivo = document.form1.archivo.value; var a = fso.OpenTextFile(archivo, 1, false); document.write("Ruta del Archivo para impresión: " + document.form1.archivo.value + "<br>" + "<br>" + "<br>") ; do linea = (a.Readline()); codofi = linea.substring(0,3); cert = linea.substring(3,9); tippag = linea.substring(9,10); cuedeb = linea.substring(10,20); valor = linea.substring(20,31); valorint = new Number(valor/100) totalvalor = totalvalor + valorint fecing = linea.substring(31,39); codpro = linea.substring(39,42); codace = linea.substring(42,43); document.write(codofi + espacio + " ¦ " + "\t" + cert + "\t" + tippag + "\t" + cuedeb + "\t" + valorint + "\t" + fecing + "\t" + codpro + "\t" + codace + "\t" + "<br>" ); } while(!archivo.atEndOfStream) a.Close(); alert(totalvalor) } </script> </head> <body> <form name="form1"> <input type="file" name ="archivo"> <input type="button" value ="Cargar Archivo" onclick="verarchivo();"> </form> </body> </html>
Realmente te agradezco voy arevisar los ejemplos, que me indicas y te estoy avisando, realmente ese es el problema al encontrar un fin de archivo da un error y no ejecuta el resto, Te cuento mañana que paso
¿Estas accediendo a un fichero de texto con javascript? ¿No estarás usando vbscript o controles ActiveX? ¿Puedes enviarme el código que usas?