Hola! :D , quisiera saber como convertir un buffer a String y viceversa.
Gracias :3 .
PD: Según hasta donde sé, se usa de u8 (8 bit), pero no sé aún como implementarlo XD .
Hola Edgamer63
No es necesario convertir un buffer en string.
Si quieres leer una string que has guardado en un buffer, puedes usar:
var value = buffer_read(buffer_id,buffer_string)
Esa función leerá la string que sigue de la posición de lectura.
Favor notar que los buffers van guardando la información como Stacks, tienes que elegir que byte quieres leer usando buffer_seek para leer la información correcta en la posición correcta.
Si quieres enviar el buffer a través del Networking, es enviarlo y ya con network_send_raw o network_send_packet.
Si quieres guardar el buffer en un archivo, es usar buffer_save y listo.
Si quieres "Literalmente" convertir el buffer completo en string, puedes usar buffer_base64_encode, pero la string es no legible hasta que lo conviertas a buffer de nuevo.
Los buffers ocupan el cache, recuerda eliminarlos cuando no sean necesarios con buffer_delete
Saludos
Eso Se puede almacenar en un array? :/
Hola Edgamer63
Sí se puede, pero no es necesario porque el buffer ya tiene una estructura de array. Solamente debes leer el dato correcto en el mismo orden que lo guardaste.
Ej: si guardaste:
buffer_write(buffer,buffer_u8,10) //El num 10 como u8
buffer_write(buffer,buffer_string,player_name) //El nombre como string
buffer_write(buffer,buffer_u16,2000) //El num 2000 como u16
Debes leerlos en el mismo orden:
buffer_seek(buff, buffer_seek_start, 0) //Regresa la posición de lectura/escritura del buffer al inicio.
array[0] = buffer_read(buffer,buffer_u8) //Lee el 10
array[1] = buffer_read(buffer,buffer_string) //Lee el nombre del player
array[2] = buffer_read(buffer,buffer_u16) //Lee el 2000
O en vez de guardar la info en un array, lo puedes asignar directamente a la variable correspondiente.
Saludos
Puede ser útil saber que las strings se guardan en formato UTF-8, por lo que algunos símbolos ocupan mas de 1 byte, por ejemplo la ñ ocupa 2 bytes.