Estoy usando una página ASP donde tengo que leer un archivo CSV e insertarlo en la tabla de DB "Empleado". Estoy creando un objeto de TestReader. ¿Cómo puedo escribir un ciclo para ejecutar hasta la cantidad de filas/registros del archivo CSV que se está leyendo?Cómo leer archivos CSV línea por línea en VBScript
Respuesta
No intente analizar el archivo usted mismo, simplemente se dará un dolor de cabeza. Hay bastante más que dividir en nueva línea y comas.
Puede usar OLEDB para abrir el archivo en un conjunto de registros y leerlo como lo haría con una tabla db. Algo como esto:
Dim strConn, conn, rs
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("path to folder") & ";Extended Properties='text;HDR=Yes;FMT-Delimited';"
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn
Set rs = Server.CreateObject("ADODB.recordset")
rs.open "SELECT * FROM myfile.csv", conn
while not rs.eof
...
rs.movenext
wend
Mi vbscript está oxidado, así que verifique la sintaxis.
editar: El comentario de harpo muestra un buen punto acerca de las definiciones de campo. La definición de un archivo schema.ini le permite definir el número y los tipos de datos de los campos esperados. Ver: Puede manejar esto definiendo un archivo schema.ini. ver: http://msdn.microsoft.com/en-us/library/ms709353.aspx
¿Por qué no inserta el CSV? Por ejemplo:
SELECT * INTO MyTable FROM OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Data Source=F:\MyDirectory;Extended Properties="text;HDR=No"')...
[MyCsvFile#csv]
Desde: http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.database.ado/2007-05/msg00057.html
- 1. Cómo leer una línea CSV con "?
- 2. Leer cadena línea por línea
- 3. Leer dos archivos de texto línea por línea simultáneamente -python
- 4. Perl leer línea por línea
- 5. R - Leer STDIN línea por línea
- 6. ¿Cómo leer desde un child_process línea por línea en Node.js?
- 7. ¿Cómo leer línea por línea en archivo pdf usando PyPdf?
- 8. ¿Cómo leer un archivo .gz línea por línea en C++?
- 9. Cómo leer línea por línea desde un área de texto
- 10. ¿Cómo leer desde la entrada estándar línea por línea?
- 11. ¿Cómo leer datos de NSFileHandle línea por línea?
- 12. Leer un archivo de texto línea por línea en Qt
- 13. Leer/Analizar archivo de texto línea por línea en VBA
- 14. ¿Cómo puedo leer línea por línea usando la interfaz Boost IOStreams para archivos Gzip?
- 15. Leer línea por línea en escritura del golpe
- 16. Leer un archivo línea por línea en Prolog
- 17. Cómo combinar dos archivos línea por línea en Bash
- 18. Perl fusionando 2 archivos csv línea por línea con una clave principal
- 19. ¿Qué es una forma superrápida de leer archivos grandes línea por línea en VBA?
- 20. Leer y escribir archivos binarios en VBScript
- 21. Leer un archivo línea por línea hacia atrás usando fseek
- 22. phantomjs javascript leer un archivo local línea por línea
- 23. Leer una cadena línea por línea usando C++
- 24. sincronización nodejs leer archivo grande línea por línea?
- 25. ¿Cómo leer exactamente una línea?
- 26. Leer en archivo de texto línea por línea php - no se detectó nueva línea
- 27. regex para dividir línea (archivo csv)
- 28. Leyendo un archivo de texto en MATLAB línea por línea
- 29. En Scala, ¿cómo leer un archivo CSV simple con un encabezado en su primera línea?
- 30. Rendimiento al leer un archivo línea por línea vs leer todo el archivo
: cuidado con el recuento de campo se basa en la primera línea. Por lo tanto, si la cantidad de campos aumenta en cualquier punto del archivo, no podrá capturar los campos adicionales. Esto importaba en mi caso, por lo que rodé el mío (aunque no en VBScript). – harpo
Esto es cierto. Puede evitar esta limitación definiendo un archivo schema.ini (http://msdn.microsoft.com/en-us/library/ms709353.aspx). Esto también le permite calificar los tipos de datos de los campos (de forma predeterminada, '0001' se leerá como '1') –
Necesita un punto y coma después de la ruta a la carpeta - Server.MapPath ("ruta de acceso a la carpeta";) - pero esto me ha ahorrado horas de intentar analizar mi archivo CSV - ¡gracias! – whostolemyhat