Problema al intentar leer un texto y decir el numero de palabras que hay repes..

Iniciado por z3nth10n, 14 Junio 2013, 16:48 PM

0 Miembros y 2 Visitantes están viendo este tema.

z3nth10n

Hola muy buenas, pues a ver he aquí mi code:

Código (vbnet) [Seleccionar]
   Sub prueba()
       Dim value As String = File.ReadAllText(".\Test.ini")

       Dim buttonname As String = WebBrowser1.Document.GetElementById("global").GetAttribute("Id")
       Dim getname As String = WebBrowser1.Document.GetElementById(buttonname).GetAttribute("Name")
       Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
       Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
       Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
       INI_Manager.Set_Value(".\Test.ini", "Contar", "2ç0k")
       INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
       INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
   End Sub


Con lo que tengo problema es:

Código (vbnet) [Seleccionar]
   Sub prueba()
       Dim value As String = File.ReadAllText(".\Test.ini")
       Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
       INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
       INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
   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 (vbnet) [Seleccionar]
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim value As String = File.ReadAllText(".\Test.ini")
       Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")
       MsgBox("Usté es el nigga numero: " & cuenta)
   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

Interesados hablad por Discord.

Eleкtro

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 (vbnet) [Seleccionar]

      Dim buttonname As String = WebBrowser1.Document.GetElementById("global").GetAttribute("Id")
      Dim getname As String = WebBrowser1.Document.GetElementById(buttonname).GetAttribute("Name")
      Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
      Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")

msgbox( _
"1: " & buttonname & _
"2: " & getname  & _
"3: " & prueba1 & _
"4: " & prueba2 )


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

Saludos. . .








z3nth10n

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 (vbnet) [Seleccionar]
Case "input" : prueba()

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

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

CitarContar = 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

Interesados hablad por Discord.

Eleкtro

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:

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.








z3nth10n

Cita de: EleKtro H@cker 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)

Sipo.

Cita de: EleKtro H@cker en 14 Junio 2013, 18:30 PM
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. :-\

Cita de: EleKtro H@cker en 14 Junio 2013, 18:30 PM
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:

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.

Interesados hablad por Discord.

Eleкtro

Acabo de probar de nuevo el código y da los resultados esperados.

Cita de: Ikillnukes en 14 Junio 2013, 18:38 PM
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 (vbnet) [Seleccionar]
        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
        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!








z3nth10n

Que excepción te da?
A mi no me da ninguna, si no me crees te lo muestro por Skype. :laugh:

Interesados hablad por Discord.

Eleкtro

Código (vbnet) [Seleccionar]
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown
        WebBrowser1.Navigate("http://ikillcraft.a0001.net/modpacks.php")
        While Not WebBrowser1.ReadyState = WebBrowserReadyState.Complete : Application.DoEvents() : End While

        ' Dim value As String = io.File.ReadAllText("C:\Test.ini")
        Dim buttonname As String = WebBrowser1.Document.GetElementById("global").GetAttribute("Id")
        Dim getname As String = WebBrowser1.Document.GetElementById(buttonname).GetAttribute("Name")
        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
        Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
        Dim cuenta As Integer = 0
        'Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")

        INI_Manager.Set_Value("C:\Test.ini", "Contar", "2ç0k")
        INI_Manager.Set_Value("C:\Test.ini", "FuncNombre-" & cuenta, getname)
        INI_Manager.Set_Value("C:\Test.ini", "FuncImg-" & cuenta, prueba2)

    End Sub

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








z3nth10n

Vale ehm soy medio tonto xD Estoy sacandole el Name a una cosa que no tiene.

Prueba a ver:

Código (vbnet) [Seleccionar]
    Sub prueba()
        Dim value As String = File.ReadAllText(".\Test.ini")

        Dim getname As String = WebBrowser1.Document.GetElementById("cacota").GetAttribute("Name")
        Dim prueba1 As String = WebBrowser1.Document.GetElementById(getname & "-nombre").GetAttribute("Value")
        Dim prueba2 As String = WebBrowser1.Document.GetElementById(getname & "-img").GetAttribute("Value")
        Dim cuenta As Integer = Find_String_Occurrences(value, "2ç0k")

        INI_Manager.Set_Value(".\Test.ini", "Contar", "2ç0k")
        INI_Manager.Set_Value(".\Test.ini", "FuncNombre-" & cuenta, prueba1)
        INI_Manager.Set_Value(".\Test.ini", "FuncImg-" & cuenta, prueba2)
    End Sub


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

Interesados hablad por Discord.

SγиtαxEяяoя

#9
Ese codigo me lo dio Electro, y funciona puedes adaptarlo a lo que necesites

Código (vbnet) [Seleccionar]
Dim INI_File As String = ".\Test.ini"

' Save INI Settings
    Private Sub Save_INI_Settings()

        Dim Current_Settings As String = _
            "File=" & TextBox_File.Text & Environment.NewLine & _
            "SaveFile=" & CheckBox_SaveFile.Checked

        My.Computer.FileSystem.WriteAllText(INI_File, Current_Settings, False)

    End Sub

' Load INI Settings
    Private Sub Load_INI_Settings()

        Dim xRead As IO.StreamReader = IO.File.OpenText(INI_File)
        Dim Line As String = String.Empty
        Dim Delimiter As String = "="
        Dim ValueName As String = String.Empty
        Dim Value As Object

        ' Example content of Test.ini:
        '
        ' File=C:\File.txt
        ' SaveFile=True

        Do Until xRead.EndOfStream

            Line = xRead.ReadLine().ToLower
            ValueName = Line.Split(Delimiter).First
            Value = Line.Split(Delimiter).Last

            If ValueName = "File".ToLower Then TextBox_File.Text = Value
            If ValueName = "SaveFile".ToLower Then CheckBox_SaveFile.Checked = Value

            Application.DoEvents()

        Loop

        xRead.Close() : xRead.Dispose()

    End Sub