Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Como Leer Una Cadena Con For?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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
 



 
FresyMetal - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
FresyMetal - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 

 



 
FresyMetal - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 



 
FresyMetal - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Leer Datos De Una Web? FresyMetal General 7 Viernes, 01 Abril 2011, 21:44 Ver último mensaje
jguardon
No hay nuevos mensajes Como Leer La IP De Un PC jcontasti General 5 Jueves, 07 Julio 2011, 08:39 Ver último mensaje
Fernandito
No hay nuevos mensajes ¿ Una Cadena Vacía Es Una Subcadena De C... Shell General 2 Jueves, 07 Agosto 2014, 14:01 Ver último mensaje
Shell
No hay nuevos mensajes ¿Como Leer El Correo De Un Servidor Remot... tincho Mundo Linux 2 Sabado, 20 May 2017, 12:35 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron