|
Página 1 de 2
|
Como Leer Una Cadena Con For?
Autor |
Mensaje |
FresyMetal
Usuario
Registrado: Marzo 2011
Mensajes: 10
Edad: 42
|
Como Leer Una Cadena Con For?
hola buenas soy nuevo en este lenguaje y estoy buscando como recorrer una cadena con un for
pero no encuentro como hacerlo y como acceder desde un indicie
por ejemplo no se como hacer esto en gambas
for (i=0; i< strlen(cad);i++){
printf("%d", cad[i]);
}
como se traduce esto a gambas???
gracias
|
#1 Domingo, 27 Marzo 2011, 18:59 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Como Leer Una Cadena Con For?
En gambas las cadenas de caracteres no se tratan como arrays de tipo char, por lo que no puedes recorrerlas de ese modo.
Si lo que quieres hacer es mostrar por consola una cadena con un formato determinado deberías usar PRINT y la función Format. Si no es eso lo que querías, entonces explica que es lo que en realidad quieres hacer para que podamos ayudarte.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#2 Domingo, 27 Marzo 2011, 19:15 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Como Leer Una Cadena Con For?
Hola
Lo que dice Fabian como de costumbre está muy bien, pero para responderte exactamente a lo que preguntas
Citar:
for (i=0; i< strlen(cad);i++){
printf("%d", cad[i]);
}
como se traduce esto a gambas???
La función mid extrae X caracteres de un string. Tu le dices de donde empezar y cuantos extraer
En este caso le digo que extraiga del string cad, a partir de la posición Contador un caracter. Si no pusiera el uno entonces extraería hasta el final
Un saludo
|
#3 Domingo, 27 Marzo 2011, 19:56 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Como Leer Una Cadena Con For?
Hola
Lo que dice Fabian como de costumbre está muy bien, pero para responderte exactamente a lo que preguntas
La función mid extrae X caracteres de un string. Tu le dices de donde empezar y cuantos extraer
En este caso le digo que extraiga del string cad, a partir de la posición Contador un caracter. Si no pusiera el uno entonces extraería hasta el final
Un saludo
Vale soplo, pero eso es precisamente lo que quería evitar que se le ocurriera hacer al nuevo forista. Como no es posible recorrer la cadena como un array de caracteres, te ves obligado a simularlo usando la función mid(). Una de las diferencias radica, obviamente, en el rendimiento. Mientras que el tiempo de acceso a una posición de un array de caracteres equivale al tiempo de acceso a una posición de memoria (más o menos), al simularlo en gambas el tiempo de acceso se dispara (y depende de la longitud de la cadena) y eso puede ser importante según el tipo de programa que se esté desarrollando, pero en gambas resultará siempre en un desperdicio innecesario de recursos.
Una cuestión básica al comenzar con un lenguaje nuevo es aprender a escribir código "idiomático", es decir, a codificar aprovechando realmente las características del nuevo lenguaje, lo que hace que el código resultante tenga un estilo particular, diferente al de otros lenguajes.
Desde este punto de vista es válido decir que el código anterior no es código gambas (idiomático), sino una traducción literal de código C a gambas que, con gran probablidad, es menos eficiente que el código gambas idiomático equivalente y generalmente también será más difícil de comprender (aunque no sea tanto así en este caso).
Hacer eso en gambas no tiene sentido (o al menos no lo tendrá en la mayoría de las circunstancias posibles). Si quisiera dividir la cadena según un patrón debería usar Split(), si quisiera extraer una porción de la cadena podría usar Left() - Mid() - Right(), si quisiera simplemente saber si la cadena contiene una subcadena determinada debería usar InStr(), etc.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#4 Domingo, 27 Marzo 2011, 20:33 |
|
|
FresyMetal
Usuario
Registrado: Marzo 2011
Mensajes: 10
Edad: 42
|
Re: Como Leer Una Cadena Con For?
hola muchas gracias por la respuesta, me ha sevido bien
el fin de esta duda era la siguiente, he hecho un programa el cuar corta archivos segun un tamaño dado usando el comando rar
y claro en un textbox hice salir las respuestas de la consola pero claro en ella salia 20% 21% etc... asi sucesivamente y queria capturar el 20 para pasarselo como parametro a la barra de progreso
y asi que funcionase de forma mas agradable al usuario final por cierto aunque no hay mucha informacion en la red sobre gambas veo k es muy util ya k para c no hay un entorno grafico y este es
lo mas sencillo k veo por el momento para ir aprendiendo a manejar objetos
|
#5 Martes, 29 Marzo 2011, 17:48 |
|
|
fabianfv
Analista Programador
Registrado: Octobre 2009
Mensajes: 495
Edad: 50 Ubicación:
|
Re: Como Leer Una Cadena Con For?
el fin de esta duda era la siguiente, he hecho un programa el cuar corta archivos segun un tamaño dado usando el comando rar
y claro en un textbox hice salir las respuestas de la consola pero claro en ella salia 20% 21% etc... asi sucesivamente y queria capturar el 20 para pasarselo como parametro a la barra de progreso
De acuerdo, pero si la salida de rar tiene un incremento constante (X + n, siendo n constante), ni siquiera necesitas capturar la salida. Simplemente utiliza el evento Read de Process para incrementar el valor que le pasas a ProgressBar.
=================== Cómo programar con Gambas
Speed Books: informática libre.
|
#6 Martes, 29 Marzo 2011, 20:03 |
|
|
FresyMetal
Usuario
Registrado: Marzo 2011
Mensajes: 10
Edad: 42
|
Re: Como Leer Una Cadena Con For?
mira esto es lo k tengo hecho por el momento, supongo k tendra algunos fallos o la forma no es correcta ya k mi campo es c y soy novato en gambas
resultado.Text = "rar a -v" & tam.Value & "m " & nuevonombre.Text & " " & rutafich.Text
entrada = resultado.Text
proc = SHELL (entrada) FOR READ WRITE
'PUBLIC SUB datos_read()
' DIM linea AS String
'READ #LAST, linea, -50
'PRINT linea
'resultado.Text = linea
END
PUBLIC SUB Process_Read()
DIM x AS Integer
DIM string AS String
READ #proc, salida, -256
Label3.Text = resultado.Text
sCad = resultado.Text
x = Left$(resultado.Text, 2)
pb.Value = x / 100
resultado.Text = salida
END
PUBLIC SUB Button3_Click()
IF proc.State = Process.Running
entrada = entrada & Chr$(10)
WRITE #proc, entrada
resultado.Text = resultado.Text & sCad
ENDIF
END
|
#7 Martes, 29 Marzo 2011, 22:25 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Como Leer Una Cadena Con For?
mira esto es lo k tengo hecho por el momento, supongo k tendra algunos fallos o la forma no es correcta ya k mi campo es c y soy novato en gambas
Por favor, no utilices abreviaturas SMS, no están permitidas en este Foro. Conviene leer las Normas antes de postear.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Martes, 29 Marzo 2011, 23:02 |
|
|
FresyMetal
Usuario
Registrado: Marzo 2011
Mensajes: 10
Edad: 42
|
Re: Como Leer Una Cadena Con For?
vale entiendo, me acabo de leer las normas, y como todos también hay faltas de ortografía en las normas, no te lo tomes a mal pero fallos tenemos todos, yo con mis k y tu con los acentos
entiendo que las abreviaturas molestan cuando son continuadas pero las k es algo nimio hay que ser mas tolerante
un saludo
|
#9 Miercoles, 30 Marzo 2011, 00:35 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Como Leer Una Cadena Con For?
vale entiendo, me acabo de leer las normas, y como todos también hay faltas de ortografía en las normas, no te lo tomes a mal pero fallos tenemos todos, yo con mis k y tu con los acentos
He repasado la ortografía en las normas y no veo las faltas en los acentos que dices. Si eres tan amable, ¿podrías indicar dónde se encuentran esas faltas? Como bien dices, nadie es perfecto y me gustaría corregirlas.
Citar:
entiendo que las abreviaturas molestan cuando son continuadas pero las k es algo nimio hay que ser mas tolerante
un saludo
Para ti serán algo nimio, pero ni siquiera figuran en el DRAE como tales [1]. Eso no es español. Por otra parte, yo (y la mayoría de los usuarios de esta comunidad) somos bastante tolerantes. Pero cuando te registraste en el foro, aceptaste implícitamente las Normas, por lo tanto si te hubieras limitado a acatarlas, creo que esta conversación no hubiera tenido lugar.
Y sí, reconozco que me molestan las k, q y ese tipo de "modernidades" sin ningún fundamento, porque dicen muy poco de la persona que lo escribe. Seré un antiguo o un maniático, pero es lo que hay. Y no me enfado, sólo que con lo fácil que es hacer las cosas bien, ¿por qué hacerlas sólo "medio bien"?
Saludos
Referencias:
[1] Abreviaturas en español.
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#10 Miercoles, 30 Marzo 2011, 21:04 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|