• Sábado 21 de Diciembre de 2024, 10:56

Autor Tema:  Usar valor de String  (Leído 3778 veces)

pedro00pedro

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Usar valor de String
« en: Jueves 13 de Enero de 2011, 21:20 »
0
El problema es que quiero que el valor en |||    SendKeys::SendWait(act4);     |||| sea dinámico dependiendo del valor de otra string (act4), que es el nombre de otrras string que es la que quiero que se muestre. Tengo varias strings (text1, text2, text3...) que tienen almacenado texto, y quiero que se muestren una por una, y para ello tenia un loop en el que act4 va cambiando empezando siendo text1 y acabando siendo text30. Pero el problema está en que SendKeys::SendWait(act4); no muestra el valor de text1, el de text2, etc, sino que muestra el nombre, tal cual, "text1", "text2", etc, y yo no quiero eso.

Aqui os pongo el codigo para que veais mejor a que me refiero, y a ver si me podeis decir como solucionarlo.
Código: C++
  1. String^ text = Convert::ToString(textBox1->Text);
  2.         String^ text2 = Convert::ToString(textBox4->Text);
  3.         String^ text3 = Convert::ToString(textBox5->Text);
  4.         [...]
  5.         String^ text30 = Convert::ToString(textBox33->Text);
  6.  
  7.         int rep;  //numero de repeticiones de envio de mensajes
  8.             if (textBox2->Text == "")
  9.                 rep = 1;
  10.             else
  11.                 rep = Convert::ToInt32(textBox2->Text);
  12.         int seg; //numero de segundos entre envios
  13.             if (textBox3->Text == "")
  14.                 seg = 0;
  15.             else
  16.                 seg = Convert::ToInt32(textBox3->Text);
  17.         int num; //numero de mensajes a enviar
  18.             if (textBox8->Text == "")
  19.                 num = 0;
  20.             else
  21.                 num = Convert::ToInt32(textBox8->Text);
  22.         int act = 1;
  23.         Sleep(2000);
  24.         //#define ESC 0x1b
  25.             do
  26.             {
  27.                 int act2 = 1;
  28.                 do
  29.                 {
  30.                 String^ act3 = Convert::ToString(act2);
  31.                 String^ act4 = "text" + act3;
  32.                 Sleep(seg*1000);
  33.                 SendKeys::SendWait(act4); [color=#FF0000]<---Aqui esta el problema, envia el mensaje "text1", "text2", etc, en vez del valor de las strings con ese nombre[/color]
  34.                 SendKeys::SendWait("{ENTER}");
  35.                 act2 = act2++;
  36.                 } while (act2 <= num);
  37.             act = act + 1;
  38.             } while (act <= rep);
  39.  

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Usar valor de String
« Respuesta #1 en: Sábado 15 de Enero de 2011, 05:35 »
0
Primero ¿Por qué en vez de ese Do While no pones un for?
Segundo te conviene tener un arreglo de texbox asi podes hacer SendKeys::SendWait(MiTextBoxArray.Text);

ivancp

  • Miembro activo
  • **
  • Mensajes: 70
    • Ver Perfil
Re: Usar valor de String
« Respuesta #2 en: Lunes 17 de Enero de 2011, 17:14 »
0
No me agrada la sintaxis del codigo C++ de .NET  (opinion muy personal offtopic para este post)
ivancp                

pedro00pedro

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Usar valor de String
« Respuesta #3 en: Lunes 17 de Enero de 2011, 20:46 »
0
Cita de: "LapizTolita"
Primero ¿Por qué en vez de ese Do While no pones un for?
Segundo te conviene tener un arreglo de texbox asi podes hacer SendKeys::SendWait(MiTextBoxArray.Text);
En cuanto a lo primero: ¿Que diferencia hay como para que merezca la pena cambiarlo?
Lo segundo. no se como se hace eso, aun estoy aprendiendo. ¿ Podrías explicar brevemente como hacerlo?

Cita de: "ivancp"
No me agrada la sintaxis del codigo C++ de .NET  (opinion muy personal offtopic para este post)
No se, yo solo he programado en VB.NET y C++.Net, es lo que se y estoy empezando, así que de momento no me preocupo por eso.

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Usar valor de String
« Respuesta #4 en: Lunes 17 de Enero de 2011, 22:17 »
0
Cita de: "pedro00pedro"
Cita de: "LapizTolita"
Primero ¿Por qué en vez de ese Do While no pones un for?
Segundo te conviene tener un arreglo de texbox asi podes hacer SendKeys::SendWait(MiTextBoxArray.Text);
En cuanto a lo primero: ¿Que diferencia hay como para que merezca la pena cambiarlo?
Lo segundo. no se como se hace eso, aun estoy aprendiendo. ¿ Podrías explicar brevemente como hacerlo?

No hay mucha diferencia para la maquina es cuestión de que tu código quede mas legible, es más cómodo tener un for(int i=0;i<n;++i) y después todo el resto del código a tener desparramadas todas las sentencias de control por ahí.

Respecto a lo segundo, te explico no todo en la vida es arrastrar textbox hay que manejar mas el código.
Declará un arreglo de textbox como lo harías con cualquier otro tipo.
Inicializalos y después le cambias las propiedades y sus respectivas ubicaciones entre otras propiedades que te parezca necesario configurar.

Otra cosa te conviene llamar las variables con nombre mas demostrativos.
Por ejemplo: repeticiones_Textbox


Cita de: "pedro00pedro"
Cita de: "ivancp"
No me agrada la sintaxis del codigo C++ de .NET  (opinion muy personal offtopic para este post)
No se, yo solo he programado en VB.NET y C++.Net, es lo que se y estoy empezando, así que de momento no me preocupo por eso.

No te preocupes el quería robar post nada más.
Y si es resulta bastante incomodo ver C++ así, pero es cuestión de costumbre

pedro00pedro

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Usar valor de String
« Respuesta #5 en: Martes 18 de Enero de 2011, 17:43 »
0
Cita de: "LapizTolita"
Cita de: "pedro00pedro"
Cita de: "LapizTolita"
Primero ¿Por qué en vez de ese Do While no pones un for?
Segundo te conviene tener un arreglo de texbox asi podes hacer SendKeys::SendWait(MiTextBoxArray.Text);
En cuanto a lo primero: ¿Que diferencia hay como para que merezca la pena cambiarlo?
Lo segundo. no se como se hace eso, aun estoy aprendiendo. ¿ Podrías explicar brevemente como hacerlo?

No hay mucha diferencia para la maquina es cuestión de que tu código quede mas legible, es más cómodo tener un for(int i=0;i<n;++i) y después todo el resto del código a tener desparramadas todas las sentencias de control por ahí.

Respecto a lo segundo, te explico no todo en la vida es arrastrar textbox hay que manejar mas el código.
Declará un arreglo de textbox como lo harías con cualquier otro tipo.
Inicializalos y después le cambias las propiedades y sus respectivas ubicaciones entre otras propiedades que te parezca necesario configurar.

Otra cosa te conviene llamar las variables con nombre mas demostrativos.
Por ejemplo: repeticiones_Textbox


Cita de: "pedro00pedro"
Cita de: "ivancp"
No me agrada la sintaxis del codigo C++ de .NET  (opinion muy personal offtopic para este post)
No se, yo solo he programado en VB.NET y C++.Net, es lo que se y estoy empezando, así que de momento no me preocupo por eso.

No te preocupes el quería robar post nada más.
Y si es resulta bastante incomodo ver C++ así, pero es cuestión de costumbre

Lo primero lo tomaré como consejo para programas futuros, pero como tú bien dices es cuestión de orden, pero una vez hecho, ¿Para que cambiarlo ya? Quizá sea peor y fastidie algo, mejor lo dejo como esta, ya que como dices no hay gran diferencia en cuanto al funcionamiento en si. Pero definitivamente creo que a partir de ahora es lo que usaré.

En cuanto a lo segundo, creo que no entendiste, no se siquiera lo que es un arreglo ni como definirlo ni usarlo. Por suerte leyendo por internet he "conseguido" hacerlo funcionar, y si, creo que es lo que estaba buscando, o por lo menos hace lo que quería, y ya de paso he aprendido que son y para que sirven, y creo que esta información me será muy útil en el futuro.
Y ni que decir tiene que he conseguido reducir mi código a 200 lineas menos, en comparación con la "chapuza" que tenia hecha, en la que tenia unos if y elses para cada textbox, si había texto realizaba lo que querías, y sino, no, mucho mas lioso y largo, y ya de paso, extremadamente ineficiente.

En cuanto a lo de nombrar las variables, lo se, y cuando hago un programa me lo pienso bien antes de nombrarlas, pero como en este tenia solo una cuantas creí que con ese nombre sobraría, tampoco quiero escribir Hipopotomonstrosesquipedaliofobia cada vez que quiero utilizarlas, no es que lo tenga, pero tampoco es plan de pasarse.
Ademas, suelo comentarlas, esos comentarios no los he puesto para vosotros, ya estaban. Yo suelo comentar mi código al menos minimamente por si acaso.

En cuanto a lo ultimo, es que es así de simple, a mi me resulta raro ver otro código que no sea alguno de los que he manejado/manejo/he visto bastante. Cuestión de costumbres.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Usar valor de String
« Respuesta #6 en: Martes 18 de Enero de 2011, 18:25 »
0
El hilo esta mal ubicado, esto es .NET, lo muevo.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.