Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/10/2010, 11:18
Avatar de erbuson
erbuson
 
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 ...