Forum > Spanish

Limite String

<< < (2/12) > >>

KodeZwerg:
This is what happen on my Windows machine.

JuanCP:
Hola de nuevo.

Ya se porque pasa esto.

como la longitud maxima del String es de 255 Caracteres, al no establecer la logitud de la cadena al declarar la variable, la logitud se toma al valor maximo por defecto.
Si intentamos acceder a un indice mayor de 255, dará error.

mosquito:
Hola Juan,


1. Lo de MODE CONSOLE Y R+ no creo que sea muy recomendable. Quizás sería mejor empezar con algo como ...



--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---  PROGRAM TEST;  {$MODE OBJFPC}{$H+}{J-}{R+}{$APPTYPE CONSOLE}  USES  {$IFDEF UNIX}  CTHREADS,  {$ENDIF}  CLASSES, SYSUTILS ;  ...   

2. Usar "string" está bien para hacer pruebas rápidas, pero no es muy aconsejable. De hecho "string" no es un tipo. Según qué plataforma uses, a qué plataformas vayas s compilar y que directivas de compilación tengas o no tengas, "string" significará cosas diferentes, algunas de ellas con resultados inesperados y sorprendentes.


String es sólo un alias. Mejor usar tipos unequívocos (ShortString, AnsiString, WideString o UnicodeString).


Como no has indicado ningún modo de compatibilidad ni has especificado ninguna directiva de compilación referente al uso de "cadenas", el compilador ha decidido por si mismo ponerse en {$MODE FPC} donde una "string" es realmente un tipo "ShortString" con un límite de 255. Podrás juguetear sin recibir errores (o no) mientras no intentes acceder una posición mayor de 254.

Fred vS:

--- Quote from: JuanCP on September 08, 2022, 09:45:11 pm ---Hola de nuevo.

Ya se porque pasa esto.

como la longitud maxima del String es de 255 Caracteres, al no establecer la logitud de la cadena al declarar la variable, la logitud se toma al valor maximo por defecto.
Si intentamos acceder a un indice mayor de 255, dará error.

--- End quote ---

Si pero me parece que si lo haces:


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---var       frase: string = 'Esto es una prueba';    begin       writeln(frase);       writeln(frase[30]);end;
podría tener una advertencia.
(Pero me parece  ser un detalle (o no...))

[EDIT] No, high(frase) es 255, incluso si se inicializa con frase: string = 'Esto es una prueba';
Entonces todo parece lógico.

mosquito:
[ :P ] Y mira que refresqué antes de lanzar la respuesta. Me ganaste por 3 segundos.

[ ;)  ] Ya veo que ves por donde vienen los tiros.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version