Cita:
Iniciado por erbuson 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