Problema pasando Array en una Funcion

Started by Milton884, August 25, 2012, 12:43:59 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Milton884

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

SplinterGU

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)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

gecko

Torres Baldi Studio
http://torresbaldi.com

Milton884

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

SplinterGU

como puntero, si, pero necesitas pasar el tamaño tambien.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

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)

SplinterGU

un array tipo char si termina en '\0' entonces ya es una string... no necesitas hacer una funcion para eso.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

El tema es que BennuPlayNet no acepta Strings, por eso hice la funcion esa

SplinterGU

como sea, el tamaño (cantidad de elementos) lo obtenes de la formula que te pase, y ese valor lo das por parametro.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

Joya, ahi entendi perfectamente =) Muchas gracias Splinter

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Milton884

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.




SplinterGU

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;
Download Lastest BennuGD Release: http://www.bennugd.org/node/2