Página 1 de 1

Como Cambiar un Texto ?

Publicado: 29 Sep 2010, 20:26
por Andres_sc
Hola Gente nececito ayuda estoy tratando de hacer ke cambie un texto pero tengo algunos problemitas :smt022
primero ke nada pongo el code de lo ke tengo echo...

Código: Seleccionar todo

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

GUICreate("Remplazo", 300, 166, 192, 124)
$sa = GUICtrlCreateInput("hola como estan todos", 59, 40, 185, 21)
$sa1 = GUICtrlCreateInput("", 59, 70, 185, 21)
$boton = GUICtrlCreateButton("Cambiar", 101, 104, 97, 33, $WS_GROUP)

GUICtrlCreateLabel("Cambia textos", 96, 8, 106, 17)
GUISetState(@SW_SHOW)


While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $GUI_EVENT_CLOSE
			Exit

       case $boton
          
		   $text = StringReplace("hola a todos","a","4")
		   
		   MsgBox(0, "", $text)


	EndSwitch
WEnd
bueno hasta ahi logro ke "hola a todos" me lo devuelva en msgbox "hol4 4 todos".
mi problemas es el siguiente , kiero ke el texto lo lea del primer imput y ke lo devuelva en el segundo imput -.-
estuve tratando de hacerlo asi " $cam = ControlSend("Remplazo", "$text","$sa1",1) " y ponerle un " send($cam) "
pero no logro hacerlo, me podrian dar una mano ?? graciass !! :smt023

Re: Como Cambiar un Texto ?

Publicado: 30 Sep 2010, 09:06
por Ximorro
Siendo un GUI tuyo no es necesario que te compliques con ControlSend, eso puede ser necesario para acceder a controles en otras ventanas pero para hacerlo en la tuya es mucho más sencillo.
Para leer el texto de un Input:
$texto = GUICtrlRead($inputControl)

Para escribir un texto en un Input:
GUICtrlSetData($inputControl, $texto)

Este último comando tiene un tercer parámetro opcional. Si este parámetro es diferente de "" (cadena vacía) el texto es insertado con el que ya pueda haber, en vez de sustituir lo que había:
GUICtrlSetData($inputControl, $texto, 1) ;así no borra el texto del control antes de escribir el nuevo

Re: Como Cambiar un Texto ?

Publicado: 30 Sep 2010, 17:49
por Andres_sc
Gracias Ximorro exelente explicacion como siempre :smt023 :smt038

ahora solo me keda una duda mas :smt017 .
como ago para ke "StringReplace() " remplace lo ke este dentro del primero imput ??
yo lo pruebo asi "StringReplace("hola a todos", "a","4") y me devuelve "hol4 4 todos"
pero si pongo asi "StringReplace($sa ,"a","4") me devuelve "3" ?¿
espero ayuda gracias :smt038

Re: Como Cambiar un Texto ?

Publicado: 30 Sep 2010, 19:38
por Andres_sc
Bueno ya encontre la forma de hacerlo lo hice asi

Código: Seleccionar todo

case $boton

		$texto = GUICtrlRead($sa)
		$texto = StringReplace($texto,"a","4")
		$texto = StringReplace($texto,"e","3")
		GUICtrlSetData($sa1, $texto)
y funciono :smt026 :smt023 :smt044
ahora otra duda mas como ago para ke me lea una letra en unicode? :smt017
por ejemplo ke me remplace la "s" por "ى"
Cuando kiero usar algo asi unicode me pone esto --> " ? " :smt017
Gracias por la ayuda estamos aprendiendo bastante Gracias a esta linda comunidad :smt038

Re: Como Cambiar un Texto ?

Publicado: 01 Oct 2010, 05:37
por Andres_sc
Bueno pude lograr lo ke keria no se si es la mejor manera pero el objetivo creo ke es el mismo
logre hacerlo de esta manera
$texto1 = StringReplace($texto1,"a",ChrW(592))
Es mucho mas trabajo pero el resultado es el ke yo keria :smt003
como diria el amigo Ximorro el autoayudarce sirve para saber ke uno le pone empeño y va aprendiendo :smt023
Saludos amigos de autoit :smt039
cuando lo termine pongo el codigo por si a alguien le sirve para algo :smt037

Re: Como Cambiar un Texto ?

Publicado: 01 Oct 2010, 11:11
por Ximorro
Muy bien así me gusta, que le des caña ;-)
¿A que mola cuando van saliendo las cosas?

Lo de StringReplace($sa ,"a","4") no funcionaba porque estabas cambiando el control, no su texto. Eso debería dar error pero como AutoIT hace conversiones de todo pasaba el identificador del control a cadena y a eso le hacía el Replace, así no da error pero por supuesto no es lo que quieres. Como bien has hecho es necesario sacar el texto, modificarlo, y volverlo a poner.

Felicidades por lo del Unicode. Leí por algún lado que AutoIt tiene algunas limitaciones trabajando en Unicode, me alegro de que hayas encontrado la solución.

talueeec

Re: Como Cambiar un Texto ?

Publicado: 01 Oct 2010, 20:05
por Andres_sc
Gracias Ximorro por la ayuda y consejos y sobre todo x felicitarme eso ayuda a ke sigamos para adelante :smt003
Bueno no se como subirlo aca pero lo subi en megaupload.
para ke lo puedan ver terminado.
http://www.megaupload.com/?d=6EEZGCAN

se aceptan ideas y consejos para mejorarlo :smt023