elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [SOLUCIONADO] Insertar texto en lugar específico textbox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Insertar texto en lugar específico textbox  (Leído 10,986 veces)
.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
[SOLUCIONADO] Insertar texto en lugar específico textbox
« en: 8 Julio 2013, 00:55 am »

Hola amigos, he estado un buen rato buscando con mi amigo Google y no he encontrado la respuesta a mi problema, os explico. Tengo el siguiente texto en un textbox:

Código:
   "RAIZ": {
"alerts": {
         "alert": true
      },
}

Y esto es lo que quiero conseguir añadiendo un texto en una posición especifica(me vale con insertarlo despues de "RAIZ": {)

Código:
   "RAIZ": {
"alerts": {
         "alert": true
      },
//TEXTO AÑADIDO
"alerts2": {
         "alert2": true
      },
//FIN TEXTO AÑADIDO
}

Parece algo sencillo pero no lo consigo  :-\

Saludos y gracias.


« Última modificación: 9 Julio 2013, 22:15 pm por .:Weeds:. » En línea


Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #1 en: 8 Julio 2013, 07:45 am »

No lo entiendo muy bien, ¿Puedes ser más específico?.

Si sólo se tarata básicamente de insertar "X" texto en "Y" posición de un String, entonces puedes usar el método "Substring".

No sé si esto te servirá de ayuda porque no entiendo del todo la forma en la que lo intentas hacer, pero bueno, aquí tienes:

Código
  1. Public Class Form1
  2.  
  3.    Dim [String] As String = String.Empty
  4.  
  5.    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  6.  
  7.        [String] = <a><![CDATA[
  8.   "RAIZ": {
  9. "alerts": {
  10.         "alert": true
  11.      },
  12. }
  13. ]]></a>.Value
  14.  
  15.        'Output:
  16.        '
  17.        '   "RAIZ": {
  18.        '"alerts": {
  19.        '         "alert": true
  20.        '      },
  21.        '}
  22.  
  23.        [String] = [String].Substring(0, [String].LastIndexOf(",")) & _
  24.            <a><![CDATA[
  25. "alerts2": {
  26.         "alert2": true
  27.      },
  28. ]]></a>.Value & (Environment.NewLine & "}")
  29.  
  30.        'Output:
  31.        '
  32.        '   "RAIZ": {
  33.        '"alerts": {
  34.        '         "alert": true
  35.        '      }
  36.        '"alerts2": {
  37.        '         "alert2": true
  38.        '      },
  39.        '}
  40.  
  41.        MsgBox([String])
  42.  
  43.    End Sub
  44.  
  45. End Class

EDITO: Si lo que quieres es poner (restringir) el cursor en una posición específica del textbox puedes usar el mismo método:
Código
  1. TextBox1.Select(TextBox1.Text.LastIndexOf(",") + 1, 0)


« Última modificación: 8 Julio 2013, 07:49 am por EleKtro H@cker » En línea



.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #2 en: 8 Julio 2013, 22:05 pm »

Hola EleKtro H@cker,
No me sirve por varios motivos, el primero es que no puedo usar <a><![CDATA[ debido a que trabajo con .net 2.0 y no contiene linq (pero bueno se inserta el texto en una variable y problema resuelto), y la otra cuestión es que si existe mas texto debajo desaparece.

Perdona por no ser mas claro, lo que estoy haciendo exactamente es editar el archivo preferences de google chrome, para que mi extensión se añada a este. Debo de modificar esta parte:

Código:
   "extensions": {
      "alerts": {
         "initialized": true
      },
      "autoupdate": {
         "last_check": "***************",
         "next_check": "***************"
      },
      "blacklistupdate": {
         "lastpingday": "**********",
         "version": "0.0.0.***"
      },
      "chrome_url_overrides": {
         "bookmarks": [ "chrome-extension://*************************/main.html" ]
      },
      "last_chrome_version": "27.0.1453.116",
      "settings": {
         "aakhlmakppmkkmfkoibponkmmpgpmjgl": {
            "blacklist": true
         },
         "aandpgohbohmlknpjbblpmoladhoochg": {
            "blacklist": true
         },

La parte de texto que quiero añadir por ejemplo es esta:

Código:
         "jandpgohbohmlknpjbblpmoladhoochg": {
            "blacklist": true
         },

Esta debe añadirse despues de "settings": { y deberia de hacerse en orden alfabético aun que eso da igual ya que me he dado cuenta de que Google Chrome los ordena solo. He pensado en mirar las lineas 1 por 1 y cuando encuentre "settings": { que se añada 1 linea debajo pero tampoco se como.

Saludos y gracias de nuevo.
En línea


Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #3 en: 8 Julio 2013, 22:18 pm »

JSON

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #4 en: 8 Julio 2013, 22:28 pm »

Ahora está todo mucho más claro, podrías haber comentado lo de Google desde el principio xD.

Puedes hacerlo a lo experto como lo haría Novlucker usando alguna librería para manejar JSON, o también puedes usar esta alternativa que hice:

Código
  1.        Dim MyExtension As String, GoogleFile As String, Preferences() As String
  2.  
  3.        MyExtension = """aakhlmakppmkkmfkoibponkmmpgpmjgl"": {""blacklist"": true},"
  4.        GoogleFile = "C:\Program Files\Google Chrome\Data\profile\Default\Preferences"
  5.        Preferences = IO.File.ReadAllLines(GoogleFile)
  6.  
  7.        For X As Int32 = 0 To Preferences.Length - 1
  8.            If Preferences(X).Trim = """settings"": {" Then
  9.                Preferences(X) &= MyExtension
  10.                IO.File.WriteAllText(String.Join(Environment.NewLine, Preferences), GoogleFile)
  11.                Exit For
  12.            End If
  13.        Next

Saludos
« Última modificación: 8 Julio 2013, 22:32 pm por EleKtro H@cker » En línea



Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #5 en: 8 Julio 2013, 22:31 pm »

Eso también sirve :P
Creo que para un virus alcanza :rolleyes:

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #6 en: 8 Julio 2013, 23:14 pm »

muy bueno el code, MUCHAS GRACIAS!! le he añadido bien la ruta pero me da el siguiente error
"Caracteres no validos en la ruta de acceso" en la linea:
IO.File.WriteAllText(String.Join(Environment.NewLine, Preferences), GoogleFile)

Código
  1.        Dim MyExtension As String, GoogleFile As String, Preferences() As String
  2.  
  3.        MyExtension = """aakhlmakppmkkmfkoibponkmmpgpmjgl"": {""blacklist"": true},"
  4.        GoogleFile = Environment.GetFolderPath(SpecialFolder.LocalApplicationData) & "\Google\Chrome\User Data\Default\Preferences"
  5.        Preferences = IO.File.ReadAllLines(GoogleFile)
  6.  
  7.        For X As Int32 = 0 To Preferences.Length - 1
  8.            If Preferences(X).Trim = """settings"": {" Then
  9.                Preferences(X) &= MyExtension
  10.                IO.File.WriteAllText(String.Join(Environment.NewLine, Preferences), GoogleFile)
  11.                Exit For
  12.            End If
  13.        Next
  14.  

Era demasiado bonito para ser verdad xD

Saludos.
En línea


.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #7 en: 9 Julio 2013, 01:51 am »

Vale ahora si que es 100% funcional:

Código
  1.        Dim MyExtension As String, GoogleFile As String, Preferences() As String
  2.  
  3.        Dim TextBoxChrome As New TextBox()
  4.        TextBoxChrome.Multiline = True
  5.  
  6.        Dim lines As String() = {
  7.        "         ""aakhlmakppmkkmfkoibponkmmpgpmjgl"": {",
  8.        "            ""blacklist"": true},"
  9.         }
  10.        MyExtension = Join(lines, vbCrLf)
  11.        GoogleFile = Environment.GetFolderPath(SpecialFolder.LocalApplicationData) & "\Google\Chrome\User Data\Default\Preferences"
  12.        Preferences = IO.File.ReadAllLines(GoogleFile)
  13.  
  14.        For X As Int32 = 0 To Preferences.Length - 1
  15.            If Preferences(X).Trim = """settings"": {" Then
  16.                Preferences(X) &= Environment.NewLine + MyExtension
  17.                TextBoxChrome.Text = String.Join(Environment.NewLine, Preferences)
  18.                Dim EscritorChrome As New StreamWriter(GoogleFile)
  19.                EscritorChrome.Write(TextBoxChrome.Text)
  20.                EscritorChrome.Close()
  21.                EscritorChrome.Dispose()
  22.                Exit For
  23.            End If
  24.        Next
  25.  

Saludos y gracias por la ayuda.  ;D
En línea


Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #8 en: 9 Julio 2013, 09:36 am »

le he añadido bien la ruta pero me da el siguiente error
"Caracteres no validos en la ruta de acceso" en la linea:
IO.File.WriteAllText(String.Join(Environment.NewLine, Preferences), GoogleFile)

Lo escribí al vuelo sin testearlo, lo que ocurre es que por confusión intercambié la posición los parámetros aquí:
Código
  1. IO.File.WriteAllText(String.Join(Environment.NewLine, Preferences), GoogleFile)

Así si:
Código
  1. IO.File.WriteAllText(GoogleFile, String.Join(Environment.NewLine, Preferences))

Este ya funciona (con la ruta correcta para tu PC):
Código
  1.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2.        Dim MyExtension As String, GoogleFile As String, Preferences() As String
  3.  
  4.        MyExtension = """aakhlmakppmkkmfkoibponkmmpgpmjgl"": {""blacklist"": true},"
  5.        GoogleFile = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Google\Chrome\User Data\Default\Preferences")
  6.        Preferences = IO.File.ReadAllLines(GoogleFile)
  7.  
  8.        For X As Int32 = 0 To Preferences.Length - 1
  9.            If Preferences(X).Trim = """settings"": {" Then
  10.                Preferences(X) &= MyExtension
  11.                IO.File.WriteAllText(GoogleFile, String.Join(Environment.NewLine, Preferences))
  12.                Exit For
  13.            End If
  14.        Next
  15.    End Sub

PD: No es necesario identar las lineas del JSON (Google chrome lo ordena por si mismo), pero bueno, si prefieres hacer un string multilinea como en tu ultimo code es tu decisión.

Saludos.
« Última modificación: 9 Julio 2013, 09:53 am por EleKtro H@cker » En línea



.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: [DUDA Vb.net] Insertar texto en lugar específico textbox
« Respuesta #9 en: 9 Julio 2013, 13:41 pm »

Este ya funciona (con la ruta correcta para tu PC):

Tu mensaje me ha dejado intrigado xD, llevo tiempo testeando donde se guarda ese archivo de configuración e independientemente de que windows utilice siempre se guarda en la ruta que yo puse. Hay algún caso donde se guarde en la ruta que tu especificaste? Por que de ser asi estoy fallando en lo mas básico  :rolleyes:

Saludos.
En línea


Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines