Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/10/2010, 12:23
buddyk9
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: leer archivo csv, transformar datos y crear un nuevo csv

Cita:
Iniciado por erbuson Ver Mensaje
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
Preguntaba lo de empezar en la línea 6 (o en otra), porque en mi archivo de entrada, en las primeras líneas, no guardan la estructura de variable1, variable2, variable3, etc, con lo que da error...
Una variante que he encontrado es coger toda la línea con FileInput, y luego mediante split separar los registros en variables.... pero no se como sería...
Gracias por tu ayuda
__________________
Genética animal y veterinaria