Foros del Web » Programación para mayores de 30 ;) » .NET »

cambiar puntos por comas en txt e importarlo a mdb

Estas en el tema de cambiar puntos por comas en txt e importarlo a mdb en el foro de .NET en Foros del Web. hola amigos, espero que podais ayudarme, conozco otros lenguajes pero soy nuevo con visual y tengo que hacer lo siguiente: tengo un archivo de texto ...
  #1 (permalink)  
Antiguo 14/05/2007, 05:39
 
Fecha de Ingreso: mayo-2007
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
cambiar puntos por comas en txt e importarlo a mdb

hola amigos, espero que podais ayudarme, conozco otros lenguajes pero soy nuevo con visual y tengo que hacer lo siguiente:

tengo un archivo de texto con campos separados con punto y coma (;) del tipo:

campo1;campo2;campo3
4.5203;4.35422442;400
4.5898;4.35606193;500
4.3309;4.35572090;500


necesito cambiar los puntos de los decimales por comas y posteriormente importar el archivo a una tabla en una base de datos access.

de preferencia tendria que hacerlo en VBA aunque tambien puedo llamar a un ejecutable de visual basic .net asi que si alguno me puede ayudar se lo agradecere

infinitamente.

habia hecho este codigo en .net pero me cambia los puntos por comas durante la ejecucion dle programa pero no las escribe en el archivo y por lo tanto no me

lo importa bien a la tabla. Os agradezco vuestra ayuda.



Imports ADOX
Imports System
Imports System.Data
Imports System.Data.OleDb

Module puntos_por_comas


Sub Main()
Using MyReader As New _
Microsoft.VisualBasic.FileIO.TextFieldParser _
("..\texto.txt")

MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(";")

Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
Dim cadena As String = Replace(currentField, ".", ",")
Next
Catch ex As _
Microsoft.VisualBasic.FileIO.MalformedLineExceptio n
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
End While
End Using


Dim cnn As New ADODB.Connection

cnn.Open( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=..\base.mdb;" & _
"Jet OLEDB:Engine Type=4;")


cnn.Execute("SELECT * INTO [Tabla] FROM [Text;DATABASE=..\;HDR=YES;FMT=Delimited(;)].[texto.txt]")


cnn.Close()

End Sub



End Module
  #2 (permalink)  
Antiguo 14/05/2007, 07:02
 
Fecha de Ingreso: octubre-2006
Mensajes: 29
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: cambiar puntos por comas en txt e importarlo a mdb

Trata haciendo el Replace dentro de la sentencia SQL...
Algo asi como:
SELECT Replace(campo1, '.', ',') INTO ...
Es la manera mas sencilla que se me ocurre.
  #3 (permalink)  
Antiguo 15/05/2007, 04:59
 
Fecha de Ingreso: mayo-2007
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: cambiar puntos por comas en txt e importarlo a mdb

aqui esta la solucion completa por si a alguien le sirve, muchas gracias.


Imports ADOX
Imports System
Imports System.Data
Imports System.Data.OleDb

Module puntos_por_comas


Sub Main()
' Leemos el contenido del archivo de texto.
Dim sr As New System.IO.StreamReader("C:\visual studio\campos\texto.txt")
Dim origen As String = sr.ReadToEnd
sr.Close()

' Reemplazamos el punto por la coma.
Dim destino As String = origen.Replace(".", ",")

' Guardamos el resultado en un nuevo archivo de texto.
Dim sw As New System.IO.StreamWriter("C:\visual studio\campos\Destino.txt")
sw.Write(destino)
sw.Close()


Dim cnn As New ADODB.Connection

cnn.Open( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\visual studio\campos\base.mdb;" & _
"Jet OLEDB:Engine Type=4;")

cnn.Execute("SELECT * INTO [Modo1] FROM [Text;DATABASE=C:\visual studio\campos\;HDR=YES;FMT=Delimited(;)].[destino.txt]")

cnn.Close()

End Sub



End Module
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:13.