17/10/2010, 11:18
|
| | | Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años Puntos: 53 | |
Respuesta: leer archivo csv, transformar datos y crear un nuevo csv Hola:
La salida separada por ; como tu quieres, puedes conseguirla así:
Ejemplo:
Dim Dato As String, Numero As Integer
Dato = "Prueba"
Numero = 10
Open "C:\Prueba1.csv" For Output As #1
Print #1, Dato; ";"; Numero; ";"; Dato; ";"; Numero
Close #1
' Salida producida
' Prueba; 10 ;Prueba; 10
Al efectuar Print y poner detras de la variable el ; esta instrucción no deja caracteres entre y entre, el conseguir el ; separador es como ves imprimiendolo tambien.
El porque hay espacios cuando imprime un numero es implícito del Print y no puedes evitarlo, a no ser que conviertas el número en cadena, por ejemplo
Print Dato; ";"; Str(Numero); ";"; Dato
Fíjate que no ponemos al final el punto y coma porque si lo pusieramos los registros no tendrían entre ellos es CrLf que los separa.
En cuanto al tema de procesar según que registros, no puedes evitar tener que leerlos pero si puedes evitar grabarlos, creando un contador del registro leido por ejemplo y resumiendo tu código:
Dim Registro As Long
Do While Not (EOF(1))
Input #1, LName, FName, age, Addr, City, state, zip
Registro = Registro +1 'Porque hemos leido un registro completo
If Registro < 6 Then Goto Saltar ' Con esto no grabaremos del 1 al 5
If Registro Mod 2 = 1 Then Goto Saltar ' Saltaremos los registros impares
'
' Procesamos nuestros datos
'
Saltar:
Loop
Espero que haya quedado todo lo claro que pretendo, no obstante, cualquier duda, comenta.
Saludos
__________________ Agradecer a quien te enseñó, es enseñar lo que de él aprendiste. Recuerda: Decir gracias, poco cuesta y mucho vale ... |