SaLz
asked on
Long String 255+ elements
How can i get around this 255 limit with a string?
Sal.
Sal.
ASKER
its ticked already.
[Error] main.pas(152): E2056 String literals may have at most 255 elements
but still get this error
[Error] main.pas(152): E2056 String literals may have at most 255 elements
but still get this error
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
how can I do that auto?
Sorry, I dont undestand what you want to say.. but try this:
var
s:string
begin
s:= '0123456789012345678901234 5678901234 5678901234 56789'+ // 50 chars
'0123456789012345678901234 5678901234 5678901234 56789'+ // 100
'0123456789012345678901234 5678901234 5678901234 56789'+ // 150
'0123456789012345678901234 5678901234 5678901234 56789'+ // 200
'0123456789012345678901234 5678901234 5678901234 56789'+ // 250
'0123456789012345678901234 5678901234 5678901234 56789'; // 300
var
s:string
begin
s:= '0123456789012345678901234
'0123456789012345678901234
'0123456789012345678901234
'0123456789012345678901234
'0123456789012345678901234
'0123456789012345678901234
lol the answer to this problem was in your question :)
S:='255chars......'
+'another255chars....'
+'etc etc';
don't give me any points for that, the answer has already been given, i just found it funny.
"Question Title: Long String 255+ elements"
+ is the answer :)
S:='255chars......'
+'another255chars....'
+'etc etc';
don't give me any points for that, the answer has already been given, i just found it funny.
"Question Title: Long String 255+ elements"
+ is the answer :)
Hi!
Delphi manage severals types of strings:
Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.
WideString ~2^30 characters 4 bytes to 2GB Unicode characters; multi-user servers and multi-language applications
If you get this error is because in any part of your program, the string that you are using is defined as shortstring.
The default strings used in Delphi (from Delphi 2 or maybe Delphi 3) is AnsiString...
Delphi manage severals types of strings:
Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.
WideString ~2^30 characters 4 bytes to 2GB Unicode characters; multi-user servers and multi-language applications
If you get this error is because in any part of your program, the string that you are using is defined as shortstring.
The default strings used in Delphi (from Delphi 2 or maybe Delphi 3) is AnsiString...
ASKER
Error..
procedure TForm1.Button1Click(Sender : TObject);
var
a : String;
b : ShortString;
c : AnsiString;
d : WideString;
begin
a := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
b := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
c := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
d := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
end;
[Error] main.pas(542): E2056 String literals may have at most 255 elements
[Error] main.pas(543): E2056 String literals may have at most 255 elements
[Error] main.pas(544): E2056 String literals may have at most 255 elements
[Error] main.pas(545): E2056 String literals may have at most 255 elements
any thoughts?
procedure TForm1.Button1Click(Sender
var
a : String;
b : ShortString;
c : AnsiString;
d : WideString;
begin
a := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
b := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
c := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
d := 'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fassafafa fa afs fas';
end;
[Error] main.pas(542): E2056 String literals may have at most 255 elements
[Error] main.pas(543): E2056 String literals may have at most 255 elements
[Error] main.pas(544): E2056 String literals may have at most 255 elements
[Error] main.pas(545): E2056 String literals may have at most 255 elements
any thoughts?
Hummm too many beers tonight...
tobjectpascal says to you the answer...
Simply break the declarations:
a := 'safafa fa afs fassafafa fa afs fassafafa fa afs fas'+
'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa'+
.....
etc
tobjectpascal says to you the answer...
Simply break the declarations:
a := 'safafa fa afs fassafafa fa afs fassafafa fa afs fas'+
'safafa fa afs fassafafa fa afs fassafafa fa afs fassafafa'+
.....
etc
I thing that this is not definable...
See the topic "Character strings" in the Delphi help:
A character string, also called a string literal or string constant, consists of a quoted string, a control string, or a combination of quoted and control strings. Separators can occur only within quoted strings.
A quoted string is a sequence of up to 255 characters from the extended ASCII character set, written on one line and enclosed by apostrophes
For what reason you need longer literals? :?
See the topic "Character strings" in the Delphi help:
A character string, also called a string literal or string constant, consists of a quoted string, a control string, or a combination of quoted and control strings. Separators can occur only within quoted strings.
A quoted string is a sequence of up to 255 characters from the extended ASCII character set, written on one line and enclosed by apostrophes
For what reason you need longer literals? :?
>RadikalQ3: For what reason you need longer literals? :?
I oftern use for sql strings in code..
sql = 'select .....'+
'where....'
I oftern use for sql strings in code..
sql = 'select .....'+
'where....'
ASKER
I was really looking for an alternative, because I use that same method already.
but thxs for trying
but thxs for trying
Salz-
for such long strings consider using a file instead, you can edit the file in any text editor, then load it to Delphi using TStringList
aStringList:TStringList;
aStringVar:string;
begin
aStringList:=TStringList.C reate;
aStringList.LoadFromFile(' thefile.tx t');
aStringVar:=aStringList.Te xt;
...
for such long strings consider using a file instead, you can edit the file in any text editor, then load it to Delphi using TStringList
aStringList:TStringList;
aStringVar:string;
begin
aStringList:=TStringList.C
aStringList.LoadFromFile('
aStringVar:=aStringList.Te
...
Project, Options
In Compiler tab check the option "Huge Strings"