Páginas: [1]
|
 |
|
Autor
|
Tema: como posicionarme en una determinada linea de un archivo de texto? (Leído 148 veces)
|
Sai-To
Desconectado
Mensajes: 181
|
Saludos, bueno mi duda es la siguiente si yo tengo un archivo .txt y en el tengo esto: carlos ana pedro jose juany quiero posicionarme en la primera linea de este archivo, osea en carlos, luego cuadno este posicionado borrar ese carlos y reemplazarlo por otro nombre como maria... Como puedo hacer esto? Gracias desde ya! 
|
|
|
|
|
En línea
|
|
|
|
xavierote
Desconectado
Mensajes: 119
|
Yo ese trabajo lo haría de la siguiente manera: Abrimos el archivo y lo guardamos en una Matriz separado por líneas. Accedemos a la posición que queremos cambiar y lo hacemos. Guardamos el archivo. Private Sub Command1_Click() Dim Texto As String Dim Separado() As String 'Array para separar el texto en lineas Dim foo As Integer Dim i As Integer foo = FreeFile Open "C:\archivo.txt" For Input As #foo 'Abrimos el archivo en modo lectura Texto = Input(LOF(foo), #foo) 'Obtenemos el contenido del archivo Close #foo Separado = Split(Texto, vbCrLf) 'Metemos en el Array el contenido del archivo separado por líneas 'Cambiamos la línea que quieras, en este caso la segunda línea If UBound(Separado) > 2 Then 'Miramos si la segunda línea existe Separado(2) = "Cambiado" 'Substituímos End If 'Guardamos todo el contenido nuevo en el archivo Open "C:\archivo.txt" For Output As #foo For i = 0 To UBound(Separado) Print #foo, Separado(i) Next i Close #foo End Sub ¡Un saludo!
|
|
|
|
|
En línea
|
|
|
|
Sai-To
Desconectado
Mensajes: 181
|
jaja man gracias este code si funciona pero si es para la 1 linea osea para carlos? como lo haria!:P
|
|
|
|
|
En línea
|
|
|
|
xavierote
Desconectado
Mensajes: 119
|
jaja man gracias este code si funciona pero si es para la 1 linea osea para carlos? como lo haria!:P
Pues para la primera línea simplemente cambiamos el valor de Separado(1) = "Cambiado" por Separado(0) = "Cambiado" Los Arrays o Matrices en Visual Basic, y en todos los lenguajes de programación, los índices de las matrices empiezan por 0, así que la primera posición de la matriz es 0. Otra cosa es que acabo de ver que hay un error en mi código. No es nada, pero de todas formas todo es por las prisas  Private Sub Command1_Click() If UBound(Separado) > 2 Then 'Podemos poner también UBound(Separado) >= 1 MsgBox UBound(Separado) Separado(1) = "Cambiado" 'El índice de la matriz es 1 para la 2ª línea End If
¡Un saludo!
|
|
|
|
|
En línea
|
|
|
|
skullsp
Desconectado
Mensajes: 243
UpLoadSourceCode
|
mmmmmmm fijate si te sirve esto tambien Dim i As Long Dim sData() As String
sData = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(sData) Debug.Print sData(i) Next lo que hace es dividir por cada vez que se apreto ENTER, si va a ser como el ejemplo esto te va a servir, pero si tenes un texto por ejemplo una historia, lo va a separar en Horaciones y no en lineas. se entiende?? saludos
|
|
|
|
|
En línea
|
|
|
|
|
Páginas: [1]
|
|
|
|