¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?


Objetivo: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Tengo una duda, cual es la longitud maxima de una cadena de caracteres. ¿que pasa si sobrepaso esta longitud?

Un saludo

Julio

Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Creo que no tienen limite definido, en todos los lugares que mire ponia de "longirud variable" es decir, todo lo que puedas, pero esta claro que llegara a un punto que diga aqui se acaba, pero me da que sera unos millones de caracteres mas tarde xD.

Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
A mi me sonaba que era sobre unos 32.000 caracteres ¿? pero no se porque es esa cantidad o seria de alguna antigua version de Basic

Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
La representación del tipo String no ocupa 4 bytes en memoria (ya que esto no tendría sentido), sino un máximo de 4 bytes por cada carácter (lo que corresponde con UTF8):

http://gambasdoc.org/help/cat/datatypes

Por lo que la cantidad de caracteres es:

2(4 bytes * 8 bits) = 232 = 4294967296

4294967296 es la cantidad de valores que es posible representar con 4 bytes, algo que se cumple para valores numéricos, pero no para caracteres. Así que, más allá de que el espacio de memoria necesario para la representación de cada carácter varíe entre 1 y 4 bytes (ya que gambas usa UTF8), ello no tiene que ver con cual sería la longitud máxima de una cadena de caracteres en gambas.

Aquí hay algo más de información:

http://gambasdoc.org/help/lang/type/string

Pero la ayuda no dice claramente que exista un límite en la cantidad de caracteres que el tipo String puede almacenar, sólo dice que la longitud de la cadena es variable. Entonces, la longitud de una cadena es altamente probable que sólo esté limitada por la cantidad memoria de la pc como mencionaba Emmet en un mensaje anterior.

Perdón por el enredo, la ayuda en línea no es muy clara.

última edición por fabianfv el Lunes, 19 Julio 2010, 19:43; editado 2 veces
Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Vaya... menuda explicacion fabianfv, es bueno saberlo xD, supongo que debi de buscar un poco mas xP.

Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Menudo es el enredo que acabo de darme cuenta que hice. Edito el mensaje para introducir las correcciones.

última edición por fabianfv el Lunes, 19 Julio 2010, 19:44; editado 1 vez
Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Hola amigos.

El tema de los tipos string es bien interesante. Recuerdo cuando programaba en lenguajes de alto nivel como FORTRAN, COBOL,PASCAL, BASIC, los cualles tenian un rango establecidopra alas variables de cadena (String) de 256 caracteres. claro está, en la mayoría de estos lenguajes, las cadenas solían declararse estáticamente, inclusive en C estándar, pero a la llegada de C++ las cadenas se volvieron dinámicas.
Ya con la implementación de la rama de la informática denominada "Teoría de Autómatas", se estableció el uso de las tan necesarias cadenas nulas o vacías.
En el caso que nos toca debatir acerca de la longitud máxima de una cadena en gambas, se hace necesario establecer que ese comportamiento va a depender del juego de caracteres que se esté aplicando el cual debe conjugarse con el juego de caracteres que está implementado en su Manejador de base de datos.

Tome en cuenta que la máxima longitud para un registro o tupla de datos de una tabla es de 65.535 caracteres o sea 64K (esto es obvio por la localizacion en los bloques de memoria del computador), por su parte, gambas para manejar cadenas implementa una clase (string gb) con métodos ya conocidos (LEN LCASE UCASE MID y muchos mas) que trabajan sobre cadenas o string en Unicode Transformation Format de 8 bits o popularmente llamado UTF8. ya por aqui tienes un camino razonable para entender que máximo de longitud maneja gambas. Claro está, debes tomar en cuenta de que gambas también soporta arreglos por consiguiente, la menor cantidad de elementos de un arreglo o array es de 2 (índices o posiciones quiero decir)asi que si divido 65535 como máximo de longitud UTF8 entre 2 mínimas posiciones de vectores nos dará como resultado 32767 y esta es la longitud máxima de caracteres que soporta un string

¿Quieres probarlo solo crea un nuevo proyecto, inserta 2 cuadros de textos (textbox) y un boton de comandos (Buttom).
posteriormente has doble click sobre el buttom y escribe

PUBLIC SUB Button1_Click()
DIM i AS Integer
FOR i = 1 TO 10000
TextBox1.Text = TextBox1.text & i
NEXT
TextBox2.Text = Len(TextBox1.text)
END


en text1 se concatenaran valores provenientes del ciclo basados en el cambio de la variable i
en text2 se mostrará la longitud de la cadena creada
No importa cuanto aumentes el valor final del ciclo, lo máximo de longitud será de 32767 ( por supuesto y por razones técnicas, el valor limite superior de un integer o entero) claro, es que una cadena es un vector tipo char dimensionado en posiciones enteras..

Espero haber aclarado este punto.

En Hora Buena. Ronny Estredo-Venezuela
http://www.gambasvenezuela.zobyhost.com

última edición por Ronny el Lunes, 23 May 2011, 15:29; editado 3 veces
Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Hola Nuevamente
Disculpen el error cometido en el comentario anterior.
La cantidad permitida es 32767.. recuerden el valor superior del rango de los enteros. Yo edite el comentario y lo modifique pero no veo la actualizacion

última edición por Ronny el Lunes, 23 May 2011, 15:28; editado 1 vez
Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Ronny, esta genial tu respuesta

Perfil MP  
Objetivo: Re: ¿cual Es La Longitud Maxima De Una Cadena De Caracteres String?
Gracias Hno Neogranadino (ivanovichenco). Es en verdad un gusto colaborar. El Conocimiento es y debe ser libre.

última edición por Ronny el Lunes, 23 May 2011, 15:28; editado 1 vez

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.8244s (PHP: -87% SQL: 187%)
Consultas SQL: 50 - Debug off - GZIP Activado