Como Leer Una Cadena Con For?


Ir a la página 1, 2  Siguiente

Objetivo: 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

Perfil MP  
Objetivo: 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.

Objetivo: 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
Dim Contador as integer, Cad as string="perico de los palotes"

For Contador=1 to len(cad)
print mid(Cad,Contador,1)
next


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

Perfil MP  
Objetivo: Re: Como Leer Una Cadena Con For?
soplo escribió: [Ver mensaje]
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
Dim Contador as integer, Cad as string="perico de los palotes"

For Contador=1 to len(cad)
print mid(Cad,Contador,1)
next


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.

Objetivo: 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

Perfil MP  
Objetivo: Re: Como Leer Una Cadena Con For?
FresyMetal escribió: [Ver mensaje]

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.

Objetivo: 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

Perfil MP  
Objetivo: Re: Como Leer Una Cadena Con For?
FresyMetal escribió: [Ver mensaje]
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

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: Re: Como Leer Una Cadena Con For?
FresyMetal escribió: [Ver mensaje]
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.

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4991s (PHP: -79% SQL: 179%)
Consultas SQL: 44 - Debug off - GZIP Activado