2011-06-02 17 views
5

Estoy tratando de leer el contenido de un archivo .csv y almacenarlo en una variable. Más tarde estoy escribiendo ese contenido en un nuevo archivo. El código se está ejecutando correctamente, pero los datos no aparecen en el nuevo archivo. Alguna sugerencia por favor?cómo leer y escribir en un archivo usando streamwriter y streamreader

Aquí está mi código:

Dim ioFile As New System.IO.StreamReader("C:\sample.csv") 

    Dim ioLine As String 
    Dim ioLines As String 
    ioLine = ioFile.ReadLine 
    ioLines = ioLine 
    While Not ioLine = "" 
     ioLine = ioFile.ReadLine 
     ioLines = ioLines & vbCrLf & ioLine 

    End While 
    Dim ioWriter As New System.IO.StreamWriter("C:\new.csv") 
    ioWriter.WriteLine(ioLines) 
    ioFile.Close() 
    ioWriter.Close() 
+2

Está funcionando bien ahora. No sé por qué no funcionó antes. Perdón por molestarlos a todos – Ram

Respuesta

1

que estaba buscando para una respuesta, porque tuve el mismo problema que U.
A continuación, comparto mi código fuente. Funciona, pruébalo.

If Not System.IO.File.Exists(path + "\" + fileName) Then 
     System.IO.File.Create(path + "\" + fileName).Dispose() 
    End If 

    Dim sr As New StreamReader(path + "\" + fileName) 
    Dim NumberOfLines As Integer 

    Do While sr.Peek >= 0 
     sr.ReadLine() 
     NumberOfLines += 1 
    Loop 
    NumberOfLines = NumberOfLines + 1 
    sr.Close() 
    sr.Dispose() 

    Dim sw As New System.IO.StreamWriter(file_path, False) 
    sw.WriteLine(NumberOfLines.ToString().PadLeft(2, "0") + vbTab + "Your content") 
    sw.Close() 
    sw.Dispose() 
+1

¿Puede explicarme un poco más sobre qué está haciendo el código y por qué soluciona su problema? – dbmitch

+1

Claro, primero compruebo si el archivo txt existe, si no existe, lo creo. y luego, si tuviera streamreader y streamwriter en el mismo código, aparece un mensaje de error "Archivo en uso por otro proceso". Entonces, la clave es cerrar el archivo y liberar el objeto de memoria del lector de flujo después de usarlo. sr.Close() sr.Dispose() Después de eso, podemos usarlos en el mismo código sin ningún problema. El valor de la variable en NumberOfLines se usó para numerar las líneas escritas en el archivo txt. Espero ser útil :-) – TommyPozo

Cuestiones relacionadas