Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2004
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
Problema con funcion "COPY" (string)

Hola...

Luego de haber utilizado muchas veces la función
COPY(string,integer,integer), me encuentro con que no se porqué no la puedo hacer funcionar bien en una parte del programa...
Tengo una cadena que levanto de un archivo INI (que la he chequeado y la levanta bien), pero cuando quiero extraer solo un caracter de la cadena no puedo !
Tengo la cadena que es una cadena de numero binarios: cadena:='100101011011'
Si pongo copy(cadena,1,1), la funcion entrega un string '1', pero cuando lo hago para el digito 4: copy(cadena,4,4) no me funciona !!! pues me devuelve '1001'... no se porqué !!! me está volviendo loco !!!

Si alguien sabe si hay alguna funcion que sustituya a copy o que haga algo similar, o porqué puede ocurrir este problema, por favor, agradecería ayuda !

Muchas gracias desde ahora !!!

saludos

mArCe
__________________
Marcelo C.
Responder Con Cita
  #2  
Antiguo 28-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

NO te preocupes... todos tenemos un día de esos ... pero siempre tenemos a la mano a nuestro fiel amigo F1

Cita:
Empezado por delphi help
function Copy(S; Index, Count: Integer): string;

Description

S is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a string or array containing Count characters or elements starting at S[Index].

If Index is larger than the length of S, Copy returns an empty string or array.

If Count specifies more characters or elements than are available, only the characters or elements from S[Index] to the end of S are returned.
Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 28-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por jachguate
containing Count characters
Inicialmente pensé esto mismo pero con la cadena que él pone debería regresar '1010' y no '1001'.

Responder Con Cita
  #4  
Antiguo 28-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Estoy casi seguro que es un error en la redacción del mensaje.

O bien le devuelve '1010', o bien la funcion realmente usada es Copy(cadena, 1, 4).

Pero dejemos que sea el mismo emeceuy quien no lo diga...

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 28-05-2004
King King is offline
Miembro
 
Registrado: may 2004
Ubicación: Mex. D.F.
Posts: 11
Poder: 0
King Va por buen camino
Copy(string)

Hola emeceuy.
te explico la sintaxis de la función copy.

Copy(cadena,posición a partir de donde quieres copiar,numero de caracteres a copiar)

cadena:='100101011011'

Copy(cadena,2,1) resultado '0'
Copy(cadena,4,1) resultado '1'
Copy(cadena,4,4) resultado '1010'

espero te sirva, saludos.
Responder Con Cita
  #6  
Antiguo 28-05-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por jachguate
Estoy casi seguro que es un error en la redacción del mensaje.
Comparto esa opinión, si la función copy fallara de esa manera, no pararían de sonar mi teléfono con llamados de usuarios quejándose de errores en mis sistemas
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 28-05-2004
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
Yo usaba mal la funcion

Primero que nada MIL GRACIAS A TODOS POR EL TIEMPO DEDICADO !!! MUCHAS GRACIAS...

Luego les cuento que como ustedes decían el ejemplo que dí tenía un error de redacción, estaban en lo cierto...
Lo que también está mal, es la forma en que yo usaba la función... La clave está en el tercer parámetro, como me lo aclaró el amigo KING, el ultimo integer que hay que darle a la función, es el numero de caracteres que se quieren abarcar a partir del segundo parámetro. Yo pensaba que el tercer parametro, era la posición hasta donde se quería copiar, pero no es así...
Yo creía que era copy(cadena, posicion inicial, posicion final) y era copy(cadena, posicion inicial, caracteres desde posicion inicial) !!!

De cualquier manera, le aclaro para algún otro inexperto usuario como yo, que encontré una manera mejor que no sabía que se podía utilizar.
Como yo quería extraer solo un caracter de la cadena, alcanza con utilizar cadena[posicion del caracter (integer)] y listo !!! esa es la mas facil, creo...

Igual podría haber usado copy, pero en lugar de utilizar copy(cadena,4,4) para extraer el cuarto caracter, debería haber utilizado copy(cadena,4,1) !!!

Lo mas importante de todo, es que entendí y aprendí, y fué gracias a ustedes. Como siempre, la gente de los foros de CLUBDELPHI me ayudan muchisimo muchisimo !!!

MUCHAS GRACIAS DENUEVO A TODOS !!!

saludos desde Uruguay

mArCeLo
__________________
Marcelo C.

Última edición por emeceuy fecha: 28-05-2004 a las 23:43:38. Razón: me equivoqué en el ejemplo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:49:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi