Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Visual Basic 2005: Grabar y leer .ini

Estas en el tema de Visual Basic 2005: Grabar y leer .ini en el foro de Visual Basic clásico en Foros del Web. Si, en el 24 hace el recorrido desde el txt, lo que pienso es que si se puede ese recorrido en un textbox: Código: If ...

  #31 (permalink)  
Antiguo 04/08/2008, 07:09
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Si, en el 24 hace el recorrido desde el txt, lo que pienso es que si se puede ese recorrido en un textbox:


Código:
If System.IO.File.Exists(FILE_NAME) = True Then
            Dim objReader As New System.IO.StreamReader(FILE_NAME)
            Dim sLinea As String = ""
            Do While objReader.Peek() <> -1
                   TextLine = TextLine & objreader.readline & vbNewLine
                Loop
            TextBox1.Text = TextLine
        Else
            MsgBox("File Does Not Exist")
        End If
' Ahora para leer el textbox:
                Do While textbox1.ReadToEnd <> -1
                   TextLine = TextLine & textbox1.readline & vbNewLine                
                Loop
Eso que te escribi en rojo pues me lo supuse para leer del textbox, obviamente no me funciona, pero es que digamos si quiero poner algo al final de una cadena que empieze de este corchete "[" necesitaria leer el textbox para que me busquen todas las coincidencias.

Otra opcion es ver si puedo obtener una cadena que este entre corchetes "[" y "]" del txt o del textbox.

Mi intension en todo esto es hacer mas de una busqueda de palabras que empiezan en alguna linea, ejemplo que quiero buscar las que empiezan con caption y con data y con "*" por que a como estoy haciendo es grabando archivos diferentes para volver a leer con el objreader y buscar con otra indicacion

gracias.!
Gracias!

Última edición por moradazo; 04/08/2008 a las 13:15
  #32 (permalink)  
Antiguo 05/08/2008, 06:53
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Disculpen nada mas otra duda:

Como puedo agregar un caracter al final de una cadena cualquiera sin conocer el contenido?
Gracias.

Última edición por moradazo; 05/08/2008 a las 07:04
  #33 (permalink)  
Antiguo 05/08/2008, 11:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Exclamación Respuesta: Visual Basic 2005: Grabar y leer .ini

No entendí muy bien tu pregunta .
¿Te refieres a esto?:
Código:
Cadena & "Cualquier texto"
No creo que sea eso, ¿podrías explicarte un poco más?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #34 (permalink)  
Antiguo 05/08/2008, 11:25
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
De acuerdo Respuesta: Visual Basic 2005: Grabar y leer .ini

Si David, digamos que voy con esta parte del codigo:

Código:
Dim objReader As New System.IO.StreamReader(FILE_NAME)
            Do While objReader.Peek() <> -1 ' Aqui hace el recorrido de todo el archivo txt o ini                
                sLinea = objReader.ReadLine() ' sLinea estaba declarado antes como un Null ""
                If Not sLinea.StartsWith("%") Then 
'Aqui esta mi duda, este if pregunta si la linea no empieza en %, 
pero quisiera hacer mas condiciones, o sea, que no empieze con %,
 ni con *, ni con HOLA, o sea, varias condiciones en la misma linea. 
He tratado con Or y no me funciona. 
Esto es por que si quiero hacer otra de estas condiciones debo guardar
 el archivo con el unico cambio para abrirlo y hacerle el cambio salvandolo 
en otro archivo.
                    TextLine = TextLine & sLinea & vbNewLine 'Aqui agrega linea a linea hasta que el while sea -1
                End If
            Loop
            TextBox1.Text = TextLine
Eso seria especificamente, lo otro es si quiero poner un "*" al final de una cadena de un textbox que tal vez contenta 15 lineas, y ese asterisco lo quiero agregar en la numero 4 por ejemplo.

Gracias David
  #35 (permalink)  
Antiguo 05/08/2008, 11:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Respuesta: Visual Basic 2005: Grabar y leer .ini

Para la condición debes usar And, o también puedes anidar varias condiciones.

Para lo otro, a ver si entendí, ¿quieres agregar en la cuarta línea un *?. Puedes poner una variable como contador, cuando llegue al 4, agregar el & "*".
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #36 (permalink)  
Antiguo 05/08/2008, 11:42
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Que tal David.

Si tambien probe con And pero si leemos la condicion, una cadena no podria empezar por "x" o por "y", debe empezar por un elemento, en este caso asi:

Dim sLinea as string = ""
If Not sLinea.StartsWith("%" and "*" and "Hola" ) Then
TextLine = TextLine & sLinea & vbNewLine
End If

igual probe estas formas con el Or:

1- If Not sLinea.StartsWith("%" or "*") Then
2- If Not sLinea.StartsWith("%") or ("*") Then
3- If Not sLinea.StartsWith("%") or sLinea.StartsWith("*") Then
4- If Not sLinea.StartsWith("%") or Not sLinea.StartsWith("*") Then
5- If Not sLinea.StartsWith("%", "*") Then
6- If Not sLinea.StartsWith("%") Then
lineas
Else
If Not sLinea.StartsWith("*") Then
lineas
end If
end If

Pero no logro llegarle a mi busqueda, si es posible que me puedas sacar de duda o algun otro amigo, muchas gracias!
  #37 (permalink)  
Antiguo 06/08/2008, 05:33
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

la idea es evitar grabar en varios archivos por un solo cambio, digamos que quiero borrar todas las lineas que empiezen por hola, por * y por % esto en una misma instruccion donde objreader solo hace una lectura del archivo y pregunta por las 3 consultas al mismo tiempo


No se si se podra, pero si se pudiera me seria bien util. Gracias.
  #38 (permalink)  
Antiguo 06/08/2008, 10:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Exclamación Respuesta: Visual Basic 2005: Grabar y leer .ini

No, ni el And y el Or lo debes usar así.
Lo que puedes hacer es asignar a una variable lo que se leyó del archivo, y usar varios If para la comparación, o en todo caso con el And.
Sería:
Código PHP:
If var = "%" Or var = "*" Then 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #39 (permalink)  
Antiguo 06/08/2008, 11:47
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

muchas gracias David.
Tal vez no entendi bien pues no me corre como deberia

En esta condicion:
If Not sLinea.StartsWith("%") Then

como puedo decirle al if que si no empieza con "%", ni tampoco con "[", ni tampoco con " ", esa es mi gran duda.

La otra es saber como poner un caracter al final de una cadena de un textbox multilinea.

GRACIAS!
  #40 (permalink)  
Antiguo 07/08/2008, 03:28
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Cómo puedo hacer una condición que me diga si una línea empieza por "[", que ponga al final de la cadena un "]"

Tengo este código:

Código:
If System.IO.File.Exists(FILE_NAME) = True Then
            Dim objReader As New System.IO.StreamReader(FILE_NAME)
            Do While objReader.Peek() <> -1
             If objReader.ReadLine.StartsWith("[") Then
                   TextLine = objreader.readline & "]" & vbNewLine
             Else
                   TextLine = TextLine & objreader.readline & vbNewLine
             End If
            Loop
            TextBox1.Text = TextLine
Al ver el Textbox, me sale todo malo, pone "]" por todos lados, si alguien me puede decir en donde estoy equivocado. Gracias
  #41 (permalink)  
Antiguo 07/08/2008, 03:59
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Respuesta: Visual Basic 2005: Grabar y leer .ini

Cita:
Iniciado por moradazo Ver Mensaje
Cómo puedo hacer una condición que me diga si una línea empieza por "[", que ponga al final de la cadena un "]"

Tengo este código:

Código:
If System.IO.File.Exists(FILE_NAME) = True Then
            Dim objReader As New System.IO.StreamReader(FILE_NAME)
            Do While objReader.Peek() <> -1
             If objReader.ReadLine.StartsWith("[") Then
                   TextLine = objreader.readline & "]" & vbNewLine
             Else
                   TextLine = TextLine & objreader.readline & vbNewLine
             End If
            Loop
            TextBox1.Text = TextLine
Al ver el Textbox, me sale todo malo, pone "]" por todos lados, si alguien me puede decir en donde estoy equivocado. Gracias
A ver, prueba así:

Código:
If System.IO.File.Exists(FILE_NAME) = True Then
            Dim objReader As New System.IO.StreamReader(FILE_NAME)
            Dim sLinea As String = ""
            Dim TextLine As String = ""
            Do While objReader.Peek() <> -1
                sLinea = objReader.ReadLine()
                If sLinea.StartsWith("[") Then sLinea = sLinea & "]"
                TextLine = TextLine & sLinea & vbNewLine
            Loop
            TextBox1.Text = TextLine
Amigo moradazo, una pequeña observación:
Procura no alargar tanto el mismo tema, pues se hace muy pesado además de que las últimas preguntas no tienen nada que ver con el título original.

un saludo
  #42 (permalink)  
Antiguo 07/08/2008, 05:44
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Cita:
Amigo moradazo, una pequeña observación:
Procura no alargar tanto el mismo tema, pues se hace muy pesado además de que las últimas preguntas no tienen nada que ver con el título original.

un saludo
Lo tomaré en cuenta Avellaneda, más bien pensé que si el tema es largo acá podrán abarcarse todo lo que trate de archivos ini, pero si la verdad tienes razón con esto último que pregunté.

Con respecto al tema (ahora si) ves una pregunta que hice un poco atrás, del post 36, es que tal vez no me entendió bien David o seré yo que no entendí a ver si me puedes aclarar la duda. Gracias!
  #43 (permalink)  
Antiguo 07/08/2008, 09:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 20 años
Puntos: 839
Exclamación Respuesta: Visual Basic 2005: Grabar y leer .ini

Lo que quise decir es que leas el primer carácter del archivo y coloques el contenido en una variable. Luego, para la comparación haces así:
Código PHP:
If var = "*" Or var = "%" Then 
Porque de lo contrario vas a tener que decirle que lea el archivo varias veces. Así:
Código PHP:
If Not sLinea.StartsWith("*") And Not sLinea.StartsWith("%"Then 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #44 (permalink)  
Antiguo 07/08/2008, 10:20
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 10 meses
Puntos: 2
Respuesta: Visual Basic 2005: Grabar y leer .ini

Gracias David si me ha servido, perdona no te habia entendido antes!

Saludos
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 23:31.