Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con AnsiString (https://www.clubdelphi.com/foros/showthread.php?t=49814)

Pedro-Juan 30-10-2007 23:53:15

Problema con AnsiString
 
Hola, un saludo a todos/as

Tengo un problema con varias cadenas más largas de 255 caracteres.

Con esto no me funciona:

Código Delphi [-]
{$H+}
var cCadena: AnsiString;
 
cCacena := 'xxxxxxxxxxxx...'; //Hasta más de 255, más o menos 500


Me da el error de: String literals may have at most 255 elements, también con string, a pesar de que la ayuda de Delphi dice que por defecto la toma como una cadena larga.

Hasta he colocado {$H+}, por si por alguna razón no funcionara esta directiva en su ligar en Delphi, pero no arregla nada.

He probado con WideString, y nada, sigue dando el mismo error.

He visto algunas cosas en el foro pero la solución es la misma que en la ayuda de Delphi. Nada

Muchas gracias de antemano.

poliburro 30-10-2007 23:54:48

verifica en las opciones del compilador, pues con la instalación las cadenas String por default vienen como AnsiString, pudiendo almacenar megas y megas de caracteres.

Suerte

Pedro-Juan 31-10-2007 00:06:39

Cita:

Empezado por poliburro (Mensaje 242458)
verifica en las opciones del compilador, pues con la instalación las cadenas String por default vienen como AnsiString, pudiendo almacenar megas y megas de caracteres.

Suerte

Muchas gracias, pero en las opciones del compilador no veo nada relacionado con las cadenas

poliburro 31-10-2007 00:20:09

que versión de delphi usas¡?

Pedro-Juan 31-10-2007 00:21:39

Cita:

Empezado por poliburro (Mensaje 242475)
que versión de delphi usas¡?

Delphi 6 Interprise, estoy mirando en project/options/Compiler

Mick 31-10-2007 12:28:07

Son las "cadenas literales" las que no pueden ser de mas de 255 caracteres en el codigo fuente, no las variables String.

Separa en 2 o 3 la cadena literal (lo que esta entre comillas simples) y listo:

Código Delphi [-]
Str:= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' +
        'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' +
        'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd';

Saludos

jhonny 31-10-2007 17:06:07

Bueno, si no quieres escribir 500 veces la letra X, tambien podrias hacer lo siguiente:

Código Delphi [-]
  cCacena := StringOfChar('X', 500);

Espero te sirva :).

Pedro-Juan 01-11-2007 08:16:39

Cita:

Empezado por Mick (Mensaje 242578)
Son las "cadenas literales" las que no pueden ser de mas de 255 caracteres en el codigo fuente, no las variables String.

Separa en 2 o 3 la cadena literal (lo que esta entre comillas simples) y listo:


Código Delphi [-]
Str:= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' +
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' +
'ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd';





Saludos


Muchas gracias a todos.
Problema resuelto.


La franja horaria es GMT +2. Ahora son las 07:51:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi