Miércoles 20 de Noviembre de 2024, 14:42
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Stringbuilder En Visual C++
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Stringbuilder En Visual C++ (Leído 4164 veces)
lyn489
Nuevo Miembro
Mensajes: 15
Stringbuilder En Visual C++
«
en:
Miércoles 26 de Diciembre de 2007, 15:31 »
0
Hola,
estoy trabajando en mi primera aplicacion WFA en visual studio 2005,para las cadenas de caracteres uso la clase StrinBuilder, pero resulta q ahora necesito comparar un SubString de un StringBuilder con un int,y no se como hacerlo, podrian ayudarme por favor ??
Este es un Ejemplo de lo q necesito hacer:
StringBuilder^ myString = gcnew StringBuilder();
myString.Insert(0,"pepe 152");
//si el substring a partir de la posicion 6,tres caracteres mas adelante es 152
if(myString->ToString()->SubString(6,3) == 152)
{
return 1;
}
Tweet
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Stringbuilder En Visual C++
«
Respuesta #1 en:
Miércoles 26 de Diciembre de 2007, 20:18 »
0
La comparacion que intentas hacer no es posible, ya que lo que estas obteniendo no es el numero 152, sino una cadena que contiene "152".
Aunque el contenido de una cadena sean numeros, no significa que los puedas manipular como numeros, siguen siendo cadenas.
Lo que debes utilizar, es la funcion strcmp, para comparar cadenas:
Código: Text
if (strcmp(myString->ToString()->SubString(6,3), "152") == 0)
la funcion strcmp devuelve 0 cuando las cadenas son iguales.
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
lyn489
Nuevo Miembro
Mensajes: 15
Re: Stringbuilder En Visual C++
«
Respuesta #2 en:
Jueves 27 de Diciembre de 2007, 23:15 »
0
hola ProfesorX
muchas gracias por responderme,he tratado de utilizar esa funcion de C,pero el compilador no me la reconoce,sabes si tengo que incluir alguna libreria??
sds
Lyn
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Stringbuilder En Visual C++
«
Respuesta #3 en:
Jueves 27 de Diciembre de 2007, 23:45 »
0
no te la reconoce porque estas trabajando con C++ + managed extensions, es decir C++ .net, por lo cual:
1- se debe mover el hilo a otro foro
2- la solución es:
Código: Text
if (myString->ToString()->SubString(6,3) == "152")
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
lyn489
Nuevo Miembro
Mensajes: 15
Re: Stringbuilder En Visual C++
«
Respuesta #4 en:
Viernes 28 de Diciembre de 2007, 14:33 »
0
Hola Juank
sabes lo q necesito en realidad es ver si un caracter de un string esta entre 0 y 9 o si esta entre A y Z, para eso en C++ con builder lo q hago es esto:
String p;
p = "HOLA 109";
if(p.SubString(1,1).StrToInt() >= 0 && p.SubString(1,1).StrToInt() <= 9)
{
//......
}
else
if(p.SubString(1,1).>= 'A' && p.SubString(1,1).StrToInt() <= 'Z')
{
//....
}
me puedes decir como hacer esto con la clase StringBuilder de visual c++??
sds
LyN
ProfesorX
Moderador
Mensajes: 796
Nacionalidad:
Re: Stringbuilder En Visual C++
«
Respuesta #5 en:
Viernes 28 de Diciembre de 2007, 20:50 »
0
Puedes hacerlo con el codigo que te puso juank, como el codigo ASCII o Unicode de los numeros es consecutivo, cuando comparas los numeros como cadenas el '0', esta antes del '1', el '1' esta antes del '2', y asi sucesivamente, asi que es valido preguntar "1" < "9", solo utiliza comillas para los numeros, como te habia dicho antes, siguen siendo cadenas.
Saludos
NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Stringbuilder En Visual C++
«
Respuesta #6 en:
Viernes 28 de Diciembre de 2007, 21:20 »
0
Entonces usa expresiones regulares, es lo mejor.
Es decir puedes hacer algo como esto:
Código: Text
public bool IsItNumber(string inputvalue)
{
Regex isnumber = new Regex("[^0-9]");
return !isnumber->IsMatch(inputvalue);
}
eso te dice si una cadena es o no un numero... por ejemplo.
también las puedes utilizar para validar que sean letras etc. , etc.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
lyn489
Nuevo Miembro
Mensajes: 15
Re: Stringbuilder En Visual C++
«
Respuesta #7 en:
Domingo 30 de Diciembre de 2007, 22:00 »
0
Hola Juank y ProfesorX,
Segui sus consejos y trate de hacer esto:
StringBuilder^ sb = gcnew StringBuilder();
sb->Append("Hola 537 soy yo lyn");
if(sb->ToString()->Substring(6,1) >= "5")
label2->Text = "Si";
else
label2->Text = "No";
Pero el compilador me dice q es una comparacion ilegal para este tipo de datos....O sea el
me deja comparar si son iguales pero mayor igual y menor igual, no.
De que otra forma lo puedo hacer??
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Stringbuilder En Visual C++
«
Respuesta #8 en:
Domingo 30 de Diciembre de 2007, 22:10 »
0
no has seguido mi consejo...
lee todo de nuevo por favor.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
lyn489
Nuevo Miembro
Mensajes: 15
Re: Stringbuilder En Visual C++
«
Respuesta #9 en:
Domingo 6 de Enero de 2008, 16:45 »
0
JuanK
es q no conozco esas funciones q usas ahi...
public bool IsItNumber(string inputvalue)
{
Regex isnumber = new Regex("[^0-9]");
return !isnumber->IsMatch(inputvalue);
}
q es Regex ?
q es isnumber->ismatch ?
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Stringbuilder En Visual C++
«
Respuesta #10 en:
Domingo 6 de Enero de 2008, 20:38 »
0
RegEx (lo que te vengo diciendo hace rato)quiere decir expreciones regulares y es un metodo ampliamente usado en rpogrmacion para validar la estructura y o naturaleza de una cadena de texto.
basicamente
Código: Text
Regex isnumber = new Regex("[^0-9]");
Esto crea la expresion regular que va a evaluar que la cadena este conformada solo por caracteres del 0 al 9... numeros.
Citar
isnumber->IsMatch(inputvalue);
IsMatch es el metodo del objeto RegExp que va evaluar que inputvalue cumpla con las caracteristicas de la expresion regular creada ([^0-9]) , este metodo devuelve true o falsxe segun sea que cumpla o no cumpla.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
lyn489
Nuevo Miembro
Mensajes: 15
Re: Stringbuilder En Visual C++
«
Respuesta #11 en:
Domingo 6 de Enero de 2008, 23:56 »
0
juank hay alguna via por la q podamos chatear??
ahora dime por la via esta q me explicas puedo comparar las cadenas para ver si son mayores o menores los numeros q tengo almacenados en los stringbuilder??
otra cosa q me pasa es q no tengo como asignarle a un int el contenido q me entren por un TextBox,pues en el builder usaba StrToInt pero aqui no se como hacerlo,
me ayudas??
sds y mil gracias por ayudarme!!!!!
LyN
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
Stringbuilder En Visual C++