Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Milton884 on August 25, 2012, 12:43:59 AM

Title: Problema pasando Array en una Funcion
Post by: Milton884 on August 25, 2012, 12:43:59 AM
Estoy haciendo esta funcion, para el uso de Strings en la libreria BennuPlayNet, pero tengo problemas en hacerla.. no puedo , me dice:
Data type not accepted here" , en:
chrVector=chrArray;


Esta es la funcion. De paso pido que si hay algun otro error de programacion respecto al pasaje de arrays  como parametro, algun corchete de mas o de menos si me lo pueden decir, desde ya gracias.

function BuildString(char chrArray);
private
        int i;
        string strFullString;
        int tope;
        char chrVector[200];                                     
     
   BEGIN
        chrVector=chrArray;
        tope=sizeof(chrVector)/sizeof(chrVector[0]);
     
       for(i=0;i<=tope;i++)
             strFullString=strFullString + chrVector[tope];
       end
     
       return strFullString;
   END
Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 25, 2012, 03:12:57 AM
lo que se hace, y esto se hace incluso en C, es lo siguiente.

function BuildString(char *chrArray, int elems);

y al llamar la funcion

BuildString( array, sizeof(array)/sizeof(array[0]));

o

BuildString( &array[0], sizeof(array)/sizeof(array[0]));

EDIT: Si el array es de tipo char, entonces simplemente es poner sizeof(array)
Title: Re:Problema pasando Array en una Funcion
Post by: gecko on August 25, 2012, 03:31:21 AM
me afano la idea, es muy buena! xD
Title: Re:Problema pasando Array en una Funcion
Post by: Milton884 on August 25, 2012, 05:15:18 AM
entonces no hay forma de pasar un Array por parametro?¿ Pq en mi caso es algo que realmente necesito hacer. Asi si lo puedo pasar:
function string BuildString(char pointer chrArray);


Poniendo pointer , asi se pasa. pero como decis vos como puntero...
Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 25, 2012, 06:14:38 AM
como puntero, si, pero necesitas pasar el tamaño tambien.
Title: Re:Problema pasando Array en una Funcion
Post by: Milton884 on August 25, 2012, 05:59:19 PM
Estoy un poco mareado. me podrian pàsar un ejemplo de una funcion donde se le pasa un vector, el tamaño.. y en una variable se guarde cuantos elementos tiene ese array? Agradeceria mucho. (en mi caso seria un array de tipo Char)
Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 25, 2012, 06:16:44 PM
un array tipo char si termina en '\0' entonces ya es una string... no necesitas hacer una funcion para eso.
Title: Re:Problema pasando Array en una Funcion
Post by: Milton884 on August 25, 2012, 06:25:28 PM
El tema es que BennuPlayNet no acepta Strings, por eso hice la funcion esa
Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 25, 2012, 06:29:10 PM
como sea, el tamaño (cantidad de elementos) lo obtenes de la formula que te pase, y ese valor lo das por parametro.
Title: Re:Problema pasando Array en una Funcion
Post by: Milton884 on August 25, 2012, 06:34:24 PM
Joya, ahi entendi perfectamente =) Muchas gracias Splinter
Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 25, 2012, 06:36:20 PM
pero en esa funcion estas retornando una string...

imagino que lo que le pasas por parametro es lo que te retorna bennuplaynet... pero eso que le pasas por parametro lo podes usar tranquilamente en bennugd como string. no necesitas convertirlo, solo lo necesitarias convertir (pero de string a char[]) si lo necesitaras como parametro de bennuplaynet.

no entiendo que estas haciendo, pero me parece que estas haciendo algo que no es necesario.
Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 25, 2012, 06:37:14 PM
Quote from: Milton884 on August 25, 2012, 06:34:24 PM
Joya, ahi entendi perfectamente =) Muchas gracias Splinter

me alegra que lo hayas entendido, pero me parece que no es necesario, con usar char[] en todo el codigo, ya es suficiente para usarlo en bennuplaynet y en bennugd como string... ademas, es mas rapido.
Title: Re:Problema pasando Array en una Funcion
Post by: Milton884 on August 25, 2012, 10:47:13 PM
sisi me di cuenta que se puede Usar char tranquilamente como si fuese una String, yo pensaba que un array de Char contenia en cada elemento Solo una Letra y que no se podia hacer esto:
arrChar="Este es un texto bla bla bla";


Por eso hice esa funcion. Totalmente inecesaria.



Title: Re:Problema pasando Array en una Funcion
Post by: SplinterGU on August 26, 2012, 04:04:25 AM
bueno, no te equivocas al decir que cada elemento contiene 1 sola letra, sin embargo el array entero puede ser usado como un string...

esto es valido

char array[10];
string str;

str = "hola mundo";
array = "hola mundo";

str = array;
array = str;