He creado un sistema de boletines en una Web y una de sus opciones es importar direcciones de email de un archivo de texto. Es un archivo normal, no tiene formato CSV, el archivo incluye un email por línea, mi código lee cada línea, ve si el email tiene un formato correcto, si no existe en la MDB y lo da de alta.
¿Cual es el problema? Pues que me omite el primer carácter de cada línea del fichero de texto.
Este sería el fichero: Libreta.txt:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Así de simple, este es el código de importación:
1º subo el archivo
2º lo leo de arriba abajo y creo las direcciones
3º lo borro
Código:
En la base de datos me guarda lo siguiente:'Si tiene valor impor comenzamos el proceso de importación. If Proceso = "impor" Then 'Primero subimos el archivo guardando su nombre. Nombre_Arch = SubirArchivo(directorio) 'Una vez subido abrimos el fichero. Set FS = Server.CreateObject("Scripting.FileSystemObject") Set Fichero = FS.OpenTextFile(Directorio & Nombre_Arch, 1, False) 'Con las siguientes variables informamos al cliente al final de la importación 'del número de líneas subidas y de los emails creados. Buenos = 0 Malos = 0 Repetidos = 0 'Recorremos todo el fichero comprobando el valor leído, si es correcto comprobamos que no 'exista. Mostraremos un mensaje por cada línea en pantalla. Do While Not Fichero.AtEndOfStream Linea=Fichero.ReadLine Response.Write "/" & Linea & "/<br>" If ValidarCorreo(Linea) = 1 Then CrearRs "Select * From Boletines_Subcr Where Email = '" & Linea & "'" If Rs.Eof then Existe = 1 Else Existe = 0 CerrarRs If Existe = 1 Then sql= "insert into Boletines_Subcr (email) VALUES ( '" & Linea & "')" Response.Write "Añadido email : " & Linea & "<br>" conn.EXECUTE (SQL) Buenos = Buenos + 1 Else Response.Write "<b>email ya existente : " & Linea & "</b><br>" Repetidos = Repetidos + 1 End If Else Response.Write "<b>Texto no reconocido como email : " & Linea & "</b><br>" Malos = Malos + 1 End If If Not Fichero.AtEndOfStream Then Fichero.Skip(1) Loop 'Impormaremos sobre los números de la importación. Response.Write "<br>Se han leído un total de " & Buenos + Malos + Repetidos & " lineas." Response.Write "<br>Se han importado un total de " & Buenos & " correos." Response.Write "<br>No se han reconocido un total de " & Malos & " correos." Response.Write "<br>Un total de " & Repetidos & " correos ya existían o estaban duplicados en el fichero." Response.Write "<br>Ahora puede subir otro fichero.<br>" 'Cerramos el fichero y lo borramos. Fichero.Close Set Fichero = Nothing FS.deletefile(Directorio & Nombre_Arch) End If
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]