Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Brian1511 en 24 Octubre 2012, 02:41 am



Título: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 24 Octubre 2012, 02:41 am
Bueno hola a todos como ya saben soy nuevo en esto de vn anteriormente utilisaba el 6.0 pero ahora utiliso el vb 2008

bueno mi duda es que cree un programa en la cual podias agragar cosas a un list box y en el puedes guardarlo en un archivo .txt la cual se guardan y automaticamente cuando inicias la aplicacion ontra ves esten hay pero el unico problema es que cuando lo abro me aparece lo siguiente:

un ejemplo

Introduci

http://google.com

al textbox y le di al boton aceptar se me agrega al listbox y automaticamente se gurda en el archivo txt

Cuando lo Abro nuevamente se me agrega algo al listbox junto al texto que introduje

http://google.com

Entonce quiero hacer de manera que no me aparezca el 

El code que tengo es mas o menos haci
Código:
if ListBox1.Text.Contains("") Then

(Que debo poner aqui para que se borre este texto y se quede el link??)

End If

Bueno por hay me quede no se hacer decir que se borre un texto seleccionado porfavor ayuda!!


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: seba123neo en 24 Octubre 2012, 15:33 pm
eso debe ser la codificacion en la que estas guardando el archivo de texto, lo deberias guardar con UTF-8, pone el codigo de como guardas el txt

saludos.


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 02:28 am
Si amigo lo guardo con extensión txt pero que deberia hacer cambiarle el code a UFT-8 ???


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 03:07 am
Bueno hola a todos como ya saben soy nuevo en esto de vn anteriormente utilisaba el 6.0 pero ahora utiliso el vb 2008

bueno mi duda es que cree un programa en la cual podias agragar cosas a un list box y en el puedes guardarlo en un archivo .txt la cual se guardan y automaticamente cuando inicias la aplicacion ontra ves esten hay pero el unico problema es que cuando lo abro me aparece lo siguiente:

un ejemplo

Introduci

http://google.com

al textbox y le di al boton aceptar se me agrega al listbox y automaticamente se gurda en el archivo txt

Cuando lo Abro nuevamente se me agrega algo al listbox junto al texto que introduje

http://google.com

Entonce quiero hacer de manera que no me aparezca el 

El code que tengo es mas o menos haci
Código:
if ListBox1.Text.Contains("") Then

(Que debo poner aqui para que se borre este texto y se quede el link??)

End If

Bueno por hay me quede no se hacer decir que se borre un texto seleccionado porfavor ayuda!!

podrias hacer

Código:
listbox1.text.replace("","")
un simple remplazo o separarlo con split("") y el index q contenga dicho caracter eliminarle y rearmar despues, existen muchas formas realmente


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 03:15 am
Hola sprirtdead como estas gracias por responder bueno ahora mismo pruebo el code tullo aver si me funciona gracias :D


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 03:24 am
podrias hacer

Código:
listbox1.text.replace("","")
un simple remplazo o separarlo con split("") y el index q contenga dicho caracter eliminarle y rearmar despues, existen muchas formas realmente

Hola amigo bueno he probado el code pero no me funciona pero de todos modos gracias
:D


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: seba123neo en 26 Octubre 2012, 03:27 am
la solucion no es reemplazar los caracteres, la solucion debe ser ver porque te esta grabando esos caracteres, hace estas 2 simples cosas.

1 - fijate si el archvio de texto creado tiene realmente esos caracteres grabados, abrilo con el bloc de notas y fijate.

2 - pone el codigo fuente que usas para grabar y cargar el archivo, me juego que ahi esta el problema.

sin codigo no podemos ver que estas haciendo.


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 03:34 am
la solucion no es reemplazar los caracteres, la solucion debe ser ver porque te esta grabando esos caracteres, hace estas 2 simples cosas.

1 - fijate si el archvio de texto creado tiene realmente esos caracteres grabados, abrilo con el bloc de notas y fijate.

2 - pone el codigo fuente que usas para grabar y cargar el archivo, me juego que ahi esta el problema.

sin codigo no podemos ver que estas haciendo.

posiblemente sea en el modo en que obtiene dicha informacion

y lo del replace si funciona pero no entiendo porque el VS no me esta tomando bien el remplazo y en c# si


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 03:49 am
Bueno seba123neo  y spiritdead estos son los codes que tengo


Para agregar y guardar en un archivo txt los items de un list box es este :

Código:
ListBox1.Items.Add(TextBox1.Text)

        Dim Saveval As Integer = 1
        Dim Listpath As String = "C:\Documents and Settings\Administrador\Mis documentos\Downloader X\" & "Historial de Links Introducidos" & ".txt"
        Saveval = Saveval + 1
        For i = 0 To ListBox1.Items.Count - 1
            Form2.ListBox1.SetSelected(i, True)
            Dim Listwrite As System.IO.StreamWriter
            Listwrite = My.Computer.FileSystem. _
            OpenTextFileWriter(Listpath, True)
            Listwrite.WriteLine(ListBox1.Items(i))
            Listwrite.Close()
        Next

Y estos para cargar los datos otra vez al list box :

Código:
If ListBox1.Text.Contains("") Then

            ListBox1.Text.Replace("", "")

        End If

        Dim Archivo$ = "C:\Documents and Settings\Administrador\Mis documentos\Downloader X\" & "Historial de Links Introducidos" & ".txt"
        Dim FF% = FreeFile()
        FileOpen(FF, Archivo, OpenMode.Input)
        Do While Not EOF(FF) 'Leerá lineas hasta que termine el archivo
            ListBox1.Items.Add(LineInput(FF)) 'Agregara Linea Actual leida al ListBox (Lineinput es un sistema que lee linea por linea un archivo)

        Loop
        FileClose(FF)


        On Error GoTo fallo



fallo:
       
        Me.Refresh()

        Exit Sub

        Resume



Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 03:50 am
Bueno seba123neo  y spiritdead estos son los codes que tengo


Para agregar y guardar en un archivo txt los items de un list box es este :

Código:
ListBox1.Items.Add(TextBox1.Text)

        Dim Saveval As Integer = 1
        Dim Listpath As String = "C:\Documents and Settings\Administrador\Mis documentos\Downloader X\" & "Historial de Links Introducidos" & ".txt"
        Saveval = Saveval + 1
        For i = 0 To ListBox1.Items.Count - 1
            Form2.ListBox1.SetSelected(i, True)
            Dim Listwrite As System.IO.StreamWriter
            Listwrite = My.Computer.FileSystem. _
            OpenTextFileWriter(Listpath, True)
            Listwrite.WriteLine(ListBox1.Items(i))
            Listwrite.Close()
        Next

Y estos para cargar los datos otra vez al list box :

Código:
If ListBox1.Text.Contains("") Then

            ListBox1.Text.Replace("", "")

        End If

        Dim Archivo$ = "C:\Documents and Settings\Administrador\Mis documentos\Downloader X\" & "Historial de Links Introducidos" & ".txt"
        Dim FF% = FreeFile()
        FileOpen(FF, Archivo, OpenMode.Input)
        Do While Not EOF(FF) 'Leerá lineas hasta que termine el archivo
            ListBox1.Items.Add(LineInput(FF)) 'Agregara Linea Actual leida al ListBox (Lineinput es un sistema que lee linea por linea un archivo)

        Loop
        FileClose(FF)


        On Error GoTo fallo



fallo:
        
        Me.Refresh()

        Exit Sub

        Resume



mala mia tube 1 error asi es con este ejemplo

Código
  1. dim textoSineditar as string =""
  2. dim textoeditado as string=""
  3.  
  4. if textoSineditar.contains("") then
  5. textoeditado = textoSineditar.replace("","")
  6. end if
  7.  
esa es 1 forma la otra es esta
Código
  1. dim textoSineditar as string =""
  2. dim textoeditado as string=""
  3.  
  4. if textoSineditar.contains("") then
  5. textoeditado = textoSineditar.remove(textosineditar.startwith(""),3)
  6. end if
  7.  

el segundo metodo solo es si solo sale 1 sola ves si sale mas veces deberias cambiar a una rutina con While para eliminar todos las veces q este :) recomendaria la primera pero siempre es bueno dar varias opciones
sorry ando distraido y no pongo bien la sintaxis xD


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: seba123neo en 26 Octubre 2012, 04:38 am
mala mia tube 1 error asi es con este ejemplo

Código
  1. dim textoSineditar as string =""
  2. dim textoeditado as string=""
  3.  
  4. if textoSineditar.contains("") then
  5. textoeditado = textoSineditar.replace("","")
  6. end if
  7.  
esa es 1 forma la otra es esta
Código
  1. dim textoSineditar as string =""
  2. dim textoeditado as string=""
  3.  
  4. if textoSineditar.contains("") then
  5. textoeditado = textoSineditar.remove(textosineditar.startwith(""),3)
  6. end if
  7.  

el segundo metodo solo es si solo sale 1 sola ves si sale mas veces deberias cambiar a una rutina con While para eliminar todos las veces q este :) recomendaria la primera pero siempre es bueno dar varias opciones
sorry ando distraido y no pongo bien la sintaxis xD

hay varias cosas para corregir, parece que estas programando a la visual basic 6.

1 - no se porque usas para controlar los errores el On Error GoTo, en .NET se usa Try Catch.

2 - para abrir y guardar los archivos te recomiendo usar StreamReader y StreamWriter, que son unicos de .NET y son los que se usan.

para cargar al listbox hay varios metodos, algunos te dejan hacerlo sin estar recorriendo linea por linea el archivo.

aca te paso 2 metodos de carga, bien de .NET, y un metodo de guardado:

Código
  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.    ' Carga todo en una sola linea
  5.    Private Sub MetodoCarga1()
  6.        ListBox1.Items.AddRange(File.ReadAllLines("C:\prueba.txt"))
  7.    End Sub
  8.  
  9.    ' Carga usando StreamReader, linea por linea hasta el final del archivo
  10.    Private Sub MetodoCarga2()
  11.        Dim vArchivo As New StreamReader("C:\prueba.txt")
  12.  
  13.        While Not vArchivo.EndOfStream
  14.            ListBox1.Items.Add(vArchivo.ReadLine())
  15.        End While
  16.  
  17.        vArchivo.Close()
  18.    End Sub
  19.  
  20.    ' Guarda usando StreamWriter
  21.    Private Sub MetodoGuardado()
  22.        Dim vArchivo As New StreamWriter("C:\prueba.txt")
  23.  
  24.        For Each vLinea As String In ListBox1.Items
  25.            vArchivo.WriteLine(vLinea)
  26.        Next
  27.  
  28.        vArchivo.Flush()
  29.        vArchivo.Close()
  30.    End Sub
  31. End Class



Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 05:23 am
hay varias cosas para corregir, parece que estas programando a la visual basic 6.

1 - no se porque usas para controlar los errores el On Error GoTo, en .NET se usa Try Catch.

2 - para abrir y guardar los archivos te recomiendo usar StreamReader y StreamWriter, que son unicos de .NET y son los que se usan.

para cargar al listbox hay varios metodos, algunos te dejan hacerlo sin estar recorriendo linea por linea el archivo.

aca te paso 2 metodos de carga, bien de .NET, y un metodo de guardado:

Código
  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.    ' Carga todo en una sola linea
  5.    Private Sub MetodoCarga1()
  6.        ListBox1.Items.AddRange(File.ReadAllLines("C:\prueba.txt"))
  7.    End Sub
  8.  
  9.    ' Carga usando StreamReader, linea por linea hasta el final del archivo
  10.    Private Sub MetodoCarga2()
  11.        Dim vArchivo As New StreamReader("C:\prueba.txt")
  12.  
  13.        While Not vArchivo.EndOfStream
  14.            ListBox1.Items.Add(vArchivo.ReadLine())
  15.        End While
  16.  
  17.        vArchivo.Close()
  18.    End Sub
  19.  
  20.    ' Guarda usando StreamWriter
  21.    Private Sub MetodoGuardado()
  22.        Dim vArchivo As New StreamWriter("C:\prueba.txt")
  23.  
  24.        For Each vLinea As String In ListBox1.Items
  25.            vArchivo.WriteLine(vLinea)
  26.        Next
  27.  
  28.        vArchivo.Flush()
  29.        vArchivo.Close()
  30.    End Sub
  31. End Class


>.> me tirastes quote ami, yo no programo en vb6 ni uso on error GoTo >.>
solo le puse 2 metodos para eliminar lo que el me pidio


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: seba123neo en 26 Octubre 2012, 05:33 am
>.> me tirastes quote ami, yo no programo en vb6 ni uso on error GoTo >.>
solo le puse 2 metodos para eliminar lo que el me pidio

si, le erre al quoteo :xD


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 06:10 am
si, le erre al quoteo :xD
xD lo importante es q los principiantes aprendan bien


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 14:52 pm
Hola a spiritdead y a seba123neo gracias por ayudarme lo mas que puedan pero he probado en los nuevos code de Spirit y me sale el sig error les he tirado varias capturas para que haci tengas mas la idea de lo que me pasa :D


Capturas

(http://img217.imageshack.us/img217/3343/error2rs.jpg)



(http://img4.imageshack.us/img4/6828/error1wg.jpg)


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: seba123neo en 26 Octubre 2012, 15:05 pm
la propiedad se llama StartsWith no StartWith, te falta la "s".  :xD


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 15:08 pm
 :rolleyes: :xD :laugh: :laugh: :laugh: siiii graciassss  hahahahahahah sos el mejor ahora mismo lo pruebo :D!!!!


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 15:20 pm
Hola amigo como estas bueno no me funciono de todas formas ya me he puesto joder un poco a ver si me salia y lo logre me finciono a la perfeccione code que ise aqui te lo dejo para que lo verifiques!! :D

Citar
Dim texto As String
     
        If TextBox1.Text.Contains("") Then
           
texto = TextBox1.Text.StartsWith("")
           
 If TextBox1.Text.StartsWith("") Then
               
TextBox1.Text = TextBox1.Text.Replace("", "")
           
End If
       
End If

    End Sub


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: seba123neo en 26 Octubre 2012, 15:34 pm
esa variable texto sacala porque no sirve para nada, no la estas usando en ningun lado, aparte la estas igualando al StartsWith que devuelve un boolean no un string.

y sacale el Contains() tambien porque si despues abajo usas el StartsWith, estas usnado 2 cosas casi iguales.

por ejemplo si tenes el texto "holaaaaaaaa", el contains va a devolver verdadero, pero el StartsWith devuelve falso y el texto te va a quedar igual, yo directamente usaria una sola linea con Replace y listo, no importa si empieza o termina con el "" que lo reemplaze en cualquier lado de la cadena que este.

el codigo te queda una sola linea.

igual la razon de la que te guarda ese "" para mi es el tema de grabacion del archivo, porque no probas los metodos que te puse antes de grabacion, probalos total no cuesta nada.

y lo que nunca digiste es si ese "" al abrir el archvio de texto con el bloc de notas ves esos caracteres raros.



Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 17:41 pm
Graciasss!! amigo si me funciona igual gracias sos el mejor !! +10 + Like


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 19:06 pm
esa variable texto sacala porque no sirve para nada, no la estas usando en ningun lado, aparte la estas igualando al StartsWith que devuelve un boolean no un string.

y sacale el Contains() tambien porque si despues abajo usas el StartsWith, estas usnado 2 cosas casi iguales.

por ejemplo si tenes el texto "holaaaaaaaa", el contains va a devolver verdadero, pero el StartsWith devuelve falso y el texto te va a quedar igual, yo directamente usaria una sola linea con Replace y listo, no importa si empieza o termina con el "" que lo reemplaze en cualquier lado de la cadena que este.

el codigo te queda una sola linea.

igual la razon de la que te guarda ese "" para mi es el tema de grabacion del archivo, porque no probas los metodos que te puse antes de grabacion, probalos total no cuesta nada.

y lo que nunca digiste es si ese "" al abrir el archvio de texto con el bloc de notas ves esos caracteres raros.



xD era 1 ejemplo para q viera como usarle, no lo quise poner exactamente textual de su codigo....  sino no aprenderia


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 26 Octubre 2012, 21:50 pm
Gracias amigo tabn fuiste de mucha ayuda por cierto estoy en otro proyecto si serias tan amable de buscarlo y leerlo a ver si me podrias ayuda! :D ??


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: spiritdead en 26 Octubre 2012, 23:37 pm
lo intentare porque ando con 1 proyecto cliente-server por tcp q me tiene las bolas cuadradas xD


Título: Re: Duda de textbox en vb.Net 2008
Publicado por: Brian1511 en 27 Octubre 2012, 03:08 am
hahahahaaha ok gracias !!