Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con funcion "COPY" (string) (https://www.clubdelphi.com/foros/showthread.php?t=10762)

emeceuy 28-05-2004 04:41:35

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

jachguate 28-05-2004 06:49:42

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.

;)

roman 28-05-2004 07:07:04

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'.

:confused:

jachguate 28-05-2004 07:15:58

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... :p

Hasta luego.

;)

King 28-05-2004 09:38:52

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.

delphi.com.ar 28-05-2004 15:49:35

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

emeceuy 28-05-2004 23:39:31

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


La franja horaria es GMT +2. Ahora son las 05:09:34.

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