Visual Basic - trabajar un txt

Life is soft - evento anual de software empresarial
 
Vista:

trabajar un txt

Publicado por Ortzi  (4 intervenciones) el 27/01/2009 21:26:21
Hola muy buenas,

Soy principiante en esto y me gustaria hacer una aplicacion que corte en parrafos un txt dependiendo del primer caracter de cada linea.

por ejemplo si
a=mid(texto,1,1) y "a" coje el valor de "1" entonces desde esa posicion hasta que en otra linea "a" vuelva a tener el valor "1" todo ese parrafo se me meta en un textbox.

y asi sucesivamente hasta final de archivo, necesito que se me separe el archivo en diferentes textbox.

Soy administrativo pero me gusta la programacion y esto me ayudaria.
Si alguien puede ayudarme se lo agradeceria. Una vez que aprenda a programar aportare mis conocimientos ;).

Un saludo a todos, Ortzi
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:trabajar un txt

Publicado por P3L30N2009 (699 intervenciones) el 28/01/2009 09:16:41
Hombre, ya que estás aprendiendo busca información sobre la función Split. Te será de utilidad.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:trabajar un txt

Publicado por Ortzi (4 intervenciones) el 28/01/2009 10:29:51
Muchas gracias peleon, estoy en ello.
un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:trabajar un txt

Publicado por ortzi (4 intervenciones) el 28/01/2009 10:47:37
Esto es lo que tengo hecho...
me parece que con el split no consigo lo que quiero


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Me.Button1.Text = " Abrir archivo "
End Sub

Function Leer(ByVal path As String) As String
Try
Dim oSR As StreamReader = New StreamReader(path)
Dim a As String
Dim contador As Integer
Dim nombre As String
Dim l As String
Dim tempSTR As String = ""
contador = 0
' lee la primer línea
l = oSR.ReadLine()
While Not l Is Nothing
a = Mid(l, 1, 1)
If a = "1" Then
nombre = Mid(l, 53, 35)
contador = contador + 1
If contador = 1 Then
Me.CheckBox1.Text = nombre
Else
Me.CheckBox2.Text = nombre
End If

tempSTR = tempSTR & l & vbNewLine
l = oSR.ReadLine() ' lee la siguiente
Else
' variable temporal que almacena las líneas
tempSTR = tempSTR & l & vbNewLine
l = oSR.ReadLine() ' lee la siguiente
End If
End While
' cierra y libera los recursos
oSR.Close()
oSR.Dispose()
' retorna el texto
Return tempSTR
' errores
Catch oe As Exception
Return ""
MsgBox(oe.Message)
End Try

End Function

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click
' nuevo diálogo
Dim OpenFiledlg As New OpenFileDialog
With OpenFileDialog1
.FileName = ""
.Filter = "Archivos de texto *.txt|*.txt|Todos *.*|*.*"
' abre el diálogo para seleccionar archivo el de texto
.ShowDialog()

If .FileName <> "" Then
TextBox1.Text = Leer(.FileName)
End If
End With
End Sub
End Class

--------------------------------------------------------------------------------------------------------------

este es el textbox que tengo ahora...

1S90200604005200712120037652006010920061231B33456625EXCAVACION 20060400520071212003765 0400520071212003765 000000000 000000000 000000000241
1S90200604005200712120037652006010920061231B33456625EXCAVACION 20060400520071212003765 0400520071212003765 000000000 000000000 000000000241 y lo que necesito es que me introduzca asi...
textbox1..

1S90200604005200712120037652006010920061231B33456625EXCAVACION 20060400520071212003765 0400520071212003765 000000000 000000000 000000000241

textbox2

1S90200604005200712120037652006010920061231B33456625EXCAVACION 20060400520071212003765 0400520071212003765 000000000 000000000 000000000241

separandomelas cuando la primera posicion de la linea sea de valor "1" hasta cuando vuelva a serlo.

igual asi mexplico mejor.
un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:trabajar un txt

Publicado por P3L30N2009 (699 intervenciones) el 28/01/2009 12:39:29
Yo creo que con la función Split sí lo puedes conseguir.
Modifica la llamada a la función 'Leer' así:

If .FileName <> "" Then
Dim ElText As String = Leer(.FileName)
Dim a() As String = Split(ElText, vbNewLine)
TextBox1.Text = a(0)
TextBox2.Text = a(1)
End If

Para otra vez, es mejor que preguntes en el foro de Visual Basic .Net; tendrás mas posibilidades de que te respondan (este es de VB antiguo).

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar