Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: z3nth10n en 14 Junio 2013, 16:48 pm



Título: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 16:48 pm
Hola muy buenas, pues a ver he aquí mi code:

Código
  1.    Sub prueba()
  2.        Dim value As String = File.ReadAllText(".\Test.ini")
  3.  
  4.        Dim buttonname As String = WebBrowser1.Document.GetElementById("global").GetAttribute("Id")
  5.        Dim getname As String = WebBrowser1.Document.GetElementById(buttonname).GetAttribute("Name")
  6.        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
  7.        Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
  8.        Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
  9.        INI_Manager.Set_Value(".\Test.ini", "Contar", "2ç0k")
  10.        INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
  11.        INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
  12.    End Sub

Con lo que tengo problema es:

Código
  1.    Sub prueba()
  2.        Dim value As String = File.ReadAllText(".\Test.ini")
  3.        Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
  4.        INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
  5.        INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
  6.    End Sub

Estoy sacando la variable "value" para luego asignarsela a un pcb. Pero no hay manera de que se introduzca mi String en el .ini

Que puedo hacer?

Un saludo. :P
PD: Todos los codes que no están por defecto en VB.NET son snippets de Elektro. :silbar:

http://foro.elhacker.net/net/crear_picturebox_a_traves_de_una_config_ini-t391685.0.html;msg1860636#msg1860636

http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1860295#msg1860295



Para descartar he hecho un code:

Código
  1.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        Dim value As String = File.ReadAllText(".\Test.ini")
  3.        Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
  4.        MsgBox("Usté es el nigga numero: " & cuenta)
  5.    End Sub

El caso es que parece que si va. :P



También he introducido un "2ç0k" a caso hecho dentro del ini, pero parece que si lo lee... :(



Confirmado, es problema del Ini_Manager :P


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 18:08 pm
No entiendo nada.

Sea como sea, mi Class no contiene el tipo de bug que estás intentando dar a entender, he reproducido tu código (más o menos), algo haces mal.

1. ¿Serías tan amable de especificar el PU#$*@XX string que quieres escribir en el archivo de texto? ...es que veo 3 en tu code.

2. ¿Serías tán amable también de especificar si te da alguna EXCEPCIÓN, además de copiarnos el message de la excepción y la línea conflictiva?

3. ¿Has comprobado si los valores de tipo string están vacios antes de preguntar? (ya me imagino que no lo has hecho)

Código
  1.       Dim buttonname As String = WebBrowser1.Document.GetElementById("global").GetAttribute("Id")
  2.       Dim getname As String = WebBrowser1.Document.GetElementById(buttonname).GetAttribute("Name")
  3.       Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
  4.       Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
  5.  
  6. msgbox( _
  7. "1: " & buttonname & _
  8. "2: " & getname  & _
  9. "3: " & prueba1 & _
  10. "4: " & prueba2 )

4. ¿Puedes postear el output del archivo INI, y también como debería ser el output?

Saludos. . .


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 18:18 pm
1. Quiero escribir las 3 :laugh:
2. Excepción te refieres a un error en la consola de errores? No hay ninguno.
3. He puesto el code y cuando pulso el evento no pasa nada. Se supone que lo estoy llamando así:

Código
  1. Case "input" : prueba()

Si pongo un msgbox nada más si que va. :s

4. Output no hay... Pero debería quedar algo así:

Citar
Contar = 2ç0k
Nombre-1 = Nombredelmodpack
Img-1 = Ruta de la imagen de fondo del pcb_1
Contar = 2ç0k
Nombre-2 = Nombredelmodpack
Img-2 = Ruta de la imagen de fondo del pcb_2
Contar = 2ç0k
Nombre-3 = Nombredelmodpack
Img-3 = Ruta de la imagen de fondo del pcb_3
......

Un saludo! :P


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 18:30 pm
1. ¿Te has asegurado de estar usando la versión terminada del ini manager? (la que hay posteada en la sección de snippets)

2. ¿Que quieres decir por "no hay output"?, ¿El archivo del INI no se crea?, ¿Has probado a modificar el primer argumento del método por "C:\test.ini"?

3. Tu output es incorrecto, "Contar" no se puede repetir, no puedes tener un nombre de valor idéntico repetido tres veces en un INI... ¿Luego como pensarías cargar un valor duplicado?.
No sé si te has fijado bien, pero el método de la Class la llamé "Set_Value", no "Add_Value" ni "Append_Value", el valor se crea, y si ya existe, se reemplaza por el que había...

Asi que este sería el putput que hace la class:

Código:
Contar=2ç0k
Nombre-1=Nombredelmodpack
Img-1=Ruta de la imagen de fondo del pcb_1
Nombre-2=Nombredelmodpack
Img-2=Ruta de la imagen de fondo del pcb_2
Nombre-3=Nombredelmodpack
Img-3=Ruta de la imagen de fondo del pcb_3

Dime la url en la que estás intentando obtener esos datos para averiguar de donde proviene el error.


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 18:38 pm
1. ¿Te has asegurado de estar usando la versión terminada del ini manager? (la que hay posteada en la sección de snippets)

Sipo.

2. ¿Que quieres decir por "no hay output"?, ¿El archivo del INI no se crea?, ¿Has probado a modificar el primer argumento del método por "C:\test.ini"?

No se crea no. Y si pongo C:\test.ini tampoco. :-\

3. Tu output es incorrecto, "Contar" no se puede repetir, no puedes tener un nombre de valor idéntico repetido tres veces en un INI... ¿Luego como pensarías cargar un valor duplicado?.
No sé si te has fijado bien, pero el método de la Class la llamé "Set_Value", no "Add_Value" ni "Append_Value", el valor se crea, y si ya existe, se reemplaza por el que había...

Asi que este sería el putput que hace la class:

Código:
Contar=2ç0k
Nombre-1=Nombredelmodpack
Img-1=Ruta de la imagen de fondo del pcb_1
Nombre-2=Nombredelmodpack
Img-2=Ruta de la imagen de fondo del pcb_2
Nombre-3=Nombredelmodpack
Img-3=Ruta de la imagen de fondo del pcb_3

Dime la url en la que estás intentando obtener esos datos para averiguar de donde proviene el error.

Te refieres a la url del WebBrowser, en ese caso es: http://ikillcraft.a0001.net/modpacks.php

Un saludo.


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 19:12 pm
Acabo de probar de nuevo el código y da los resultados esperados.

Te refieres a la url del WebBrowser, en ese caso es: http://ikillcraft.a0001.net/modpacks.php

No creo que sea esa url, porque da dos excepciones aquí:
Código
  1.        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
  2.        Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")

Pero en cambio tu dices que los valores están correctos.

Sigo diciendo lo mismo, algo estás haciendo mal,
saludos!


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 19:20 pm
Que excepción te da?
A mi no me da ninguna, si no me crees te lo muestro por Skype. :laugh:


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 19:29 pm
Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown
  4.        WebBrowser1.Navigate("http://ikillcraft.a0001.net/modpacks.php")
  5.        While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete : Application.DoEvents() : End While
  6.  
  7.        ' Dim value As String = io.File.ReadAllText("C:\Test.ini")
  8.        Dim buttonname As String = WebBrowser1.Document.GetElementById("global").GetAttribute("Id")
  9.        Dim getname As String = WebBrowser1.Document.GetElementById(buttonname).GetAttribute("Name")
  10.        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
  11.        Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
  12.        Dim cuenta As Integer = 0
  13.        'Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
  14.  
  15.        INI_Manager.Set_Value("C:\Test.ini", "Contar", "2ç0k")
  16.        INI_Manager.Set_Value("C:\Test.ini", "FuncNombre-" & cuenta, getname)
  17.        INI_Manager.Set_Value("C:\Test.ini", "FuncImg-" & cuenta, prueba2)
  18.  
  19.    End Sub
  20.  
  21. End Class

No encuentra los valores porque "getname" está vacía, y salta excepción en prueba1 y prueba2, porque getname está vacía.

Imagino que hay algo distinto a como tienes escrito tu code, hazle las modificaciones necesarias a ese código que te muestro (para que funcione la parte de los strings), y miraré a ver que pasa con el resto.

Saludos


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 19:37 pm
Vale ehm soy medio tonto xD Estoy sacandole el Name a una cosa que no tiene.

Prueba a ver:

Código
  1.    Sub prueba()
  2.        Dim value As String = File.ReadAllText(".\Test.ini")
  3.  
  4.        Dim getname As String = WebBrowser1.Document.GetElementById("cacota").GetAttribute("Name")
  5.        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
  6.        Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
  7.        Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
  8.  
  9.        INI_Manager.Set_Value(".\Test.ini", "Contar", "2ç0k")
  10.        INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
  11.        INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
  12.    End Sub

Lo curioso que sigue sin crearse el ini... :-\


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: SγиtαxEяяoя en 14 Junio 2013, 20:18 pm
Ese codigo me lo dio Electro, y funciona puedes adaptarlo a lo que necesites

Código
  1. Dim INI_File As String = ".\Test.ini"
  2.  
  3. ' Save INI Settings
  4.    Private Sub Save_INI_Settings()
  5.  
  6.        Dim Current_Settings As String = _
  7.            "File=" & TextBox_File.Text & Environment.NewLine & _
  8.            "SaveFile=" & CheckBox_SaveFile.Checked
  9.  
  10.        My.Computer.FileSystem.WriteAllText(INI_File, Current_Settings, False)
  11.  
  12.    End Sub
  13.  
  14. ' Load INI Settings
  15.    Private Sub Load_INI_Settings()
  16.  
  17.        Dim xRead As IO.StreamReader = IO.File.OpenText(INI_File)
  18.        Dim Line As String = String.Empty
  19.        Dim Delimiter As String = "="
  20.        Dim ValueName As String = String.Empty
  21.        Dim Value As Object
  22.  
  23.        ' Example content of Test.ini:
  24.        '
  25.        ' File=C:\File.txt
  26.        ' SaveFile=True
  27.  
  28.        Do Until xRead.EndOfStream
  29.  
  30.            Line = xRead.ReadLine().ToLower
  31.            ValueName = Line.Split(Delimiter).First
  32.            Value = Line.Split(Delimiter).Last
  33.  
  34.            If ValueName = "File".ToLower Then TextBox_File.Text = Value
  35.            If ValueName = "SaveFile".ToLower Then CheckBox_SaveFile.Checked = Value
  36.  
  37.            Application.DoEvents()
  38.  
  39.        Loop
  40.  
  41.        xRead.Close() : xRead.Dispose()
  42.  
  43.    End Sub


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 20:26 pm
Ese codigo me lo dio Electro, y funciona puedes adaptarlo a lo que necesites
Ese código es la versión antigua de mi Class: http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1860295#msg1860295

No te esfuerces SyntaxError, el problema no está en el código del INI, sinó en las catástrofes que acomete IKillNukes antes de usar "el INI".

Salu2


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 20:41 pm
Ya lo he resuelto, con cambiar:

Código
  1. Dim value As String = File.ReadAllText(".\Test.ini")

De sitio, ya va.... Pero, pero, pero WTF?

Elektro me lo puedes explicar? Por cierto, estamos yo y Syntax por skype por si te quieres unir. :P



Ahora ha dejado de funcionar... :-\

No funciona por esto:

Código
  1.        Dim strStreamW As Stream = Nothing
  2.        If File.Exists(".\Test.ini") Then
  3.  
  4.        Else
  5.            strStreamW = File.Create(".\Test.ini")
  6.        End If



Ya lo he arreglado, solo que el File.Create se me está revelando... :silbar:


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 21:08 pm
Te lo dije de verdad, no esperes mi ayuda Seazoux, lo que necesitas es leer y dejar de tanto copiar sin saber lo que estás haciendo.


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 21:13 pm
Oye que ahora no estoy copiando, estoy viendo cosas de Internet y las estoy adaptando, si no preguntale a Syntax que estuvo conmigo en una llamada y le enseñe la pantalla por Skype

Código
  1.        If File.Exists(".\Test.ini") Then
  2.            INI_Manager.Set_Value(".\Test.ini", "Contar-" & cuenta, "2ç0k")
  3.            INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
  4.            INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
  5.        Else
  6.            'Dim path As String = ".\Test.ini"
  7.            'Dim fs As FileStream = File.Create(path)
  8.            'fs.Close()
  9.  
  10.            INI_Manager.Set_Value(".\Test.ini", "Contar-" & cuenta, "2ç0k")
  11.            INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
  12.            INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
  13.        End If

Tengo un problema con lo que está dentro de un Comentario y es que no me va :(


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 21:24 pm
Todo lo que acabas de decir es irrelevante, no me cuentes historias Seazoux, sigues """"adaptando"""" códigos sin querer aprender lo básico del lenguaje, types, keywords, delegados, variables, propiedades, eventos.

No insistas,
Si tuvieras algo de sentido común sobre lo que estás intentando hacer te preguntarías porque narices estás declarando un stream para crear un archivo que no piensas leer con un stream.

Saludos!


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 21:35 pm
Ok, pues me pondré a aprender lo antes posible, pero no se, yo veo más sencillo ir aprendiendo de ejemplos ya hechos, por cierto el VS2012 me rarísimo... :-\

Voy a reiniciarlo a ver... :rolleyes:


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: XresH en 14 Junio 2013, 21:54 pm
Ok, pues me pondré a aprender lo antes posible, pero no se, yo veo más sencillo ir aprendiendo de ejemplos ya hechos, por cierto el VS2012 me rarísimo... :-\

Voy a reiniciarlo a ver... :rolleyes:

Visualiza ejemplos que declaren variables de todo tipo, manipulación de cadenas, utiilizen bucles, sentencias, selecciones, condiciones, tipos de dato, arrays, son los básicos al menos para entretenerte unos cuantos dias.
Con los que estás viendo hasta ahora jamas aprenderás lo básico.





Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: z3nth10n en 14 Junio 2013, 22:31 pm
Si leyese, me hubiese percatado de que tu Snippet crea el archivo si no existe... Pero lo raro es que si quito el If y todo esto y dejo solo los 3 Ini_manager... pues no crea nada... :silbar:


Título: Re: Problema al intentar leer un texto y decir el numero de palabras que hay repes..
Publicado por: Eleкtro en 14 Junio 2013, 22:37 pm
Si leyese, me hubiese percatado de que tu Snippet crea el archivo si no existe... Pero lo raro es que si quito el If y todo esto y dejo solo los 3 Ini_manager... pues no crea nada... :silbar:

El INI Manager se ha distribuido "As is",
Si consideras que la Class necesita alguna modificación para adaptarse a tu modo de empleo pues precísamente para eso lo compartí, no sólamente para "copiarlo", sinó para que cada uno lo adapte a su código como desee, pero claro, para saber adaptarlo primero hay que leer un poquito EDITO: sobre el lenguaje, para saber que tocar...

Saludos!