Wie kann ich strings haben die länger als 255 zeichen sind ?
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Wie kann ich strings haben die länger als 255 zeichen sind ?
Hallo,
mir ist heute aufgefallen das das die strings nur 255 zeichen speichern...wie kann ich das umgehen ?
mir geht es eigentlich nur darum einen Text auf einen Canvas zu zeichnen und dabei würde ich gerne textRect nutzen !!!
hat da jemmand von euch eine idee ?
mir ist heute aufgefallen das das die strings nur 255 zeichen speichern...wie kann ich das umgehen ?
mir geht es eigentlich nur darum einen Text auf einen Canvas zu zeichnen und dabei würde ich gerne textRect nutzen !!!
hat da jemmand von euch eine idee ?
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
nein das wars leider nicht ! ich habe die einstellung garnicht gefunden unter compliereinstellungen !
und die anweisung wenn ich die verwende gibt den gleiche fehlermeldung aus:
{$H+}
edit:
habe sie unter complier einstellungen gefunden aber zeigt keine wirkung !
edit2: es kommt immer die gleiche meldung:
uPaint2Obj.pas(308,9) Error: Constant strings can't be longer than 255 chars
und die anweisung wenn ich die verwende gibt den gleiche fehlermeldung aus:
{$H+}
edit:
habe sie unter complier einstellungen gefunden aber zeigt keine wirkung !
edit2: es kommt immer die gleiche meldung:
uPaint2Obj.pas(308,9) Error: Constant strings can't be longer than 255 chars
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Text:String;
text:='fahsjdfjöasdögljsaklöjgölkasjgklösajöglkjsalgjweigjrögj kmölkambmnbjahfgjahgöeuhguaöwrhguörhgahsöjghasöjnbvgkmnbmynxbmnyxjbfnurnbuarnbnbjnmnb,mynbgsagsagsaghsjahgjsaklhgjh78h43hgjj njnjangkajnglanjlgknsaljgnlasjngjlsangjnasgjasgjklnglrjg,'
bei so einem "langen" string meckert er !
nagut dann nehme ich eine StringList !
text:='fahsjdfjöasdögljsaklöjgölkasjgklösajöglkjsalgjweigjrögj kmölkambmnbjahfgjahgöeuhguaöwrhguörhgahsöjghasöjnbvgkmnbmynxbmnyxjbfnurnbuarnbnbjnmnb,mynbgsagsagsaghsjahgjsaklhgjh78h43hgjj njnjangkajnglanjlgknsaljgnlasjngjlsangjnasgjasgjklnglrjg,'
bei so einem "langen" string meckert er !
nagut dann nehme ich eine StringList !
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Das Problem ist wie bei Delphi, zumindest bei älteren versionen. Ein String ist nicht auf 255 begrnzt, sondern nur die Stringzuweisung über den Quelltext der Ide, wenn du eben einer string-variable den Text so wie oben übergibts.
In dem Fal musst du einfach den string beispielsweise in 250-Zeichenblöcken übergeben
Text := 'ersten 250 zeichen' + 'nächsten 250 zeichen' + 'und so weiter...';
Auf die Art kannst du längere Strings übergeben, die nur durch das System begrenzt sind. Sei es durch Arbeitsspeicher oder Adressierung oder was auch immer.
In dem Fal musst du einfach den string beispielsweise in 250-Zeichenblöcken übergeben
Text := 'ersten 250 zeichen' + 'nächsten 250 zeichen' + 'und so weiter...';
Auf die Art kannst du längere Strings übergeben, die nur durch das System begrenzt sind. Sei es durch Arbeitsspeicher oder Adressierung oder was auch immer.
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
...und, wo liegt jetzt das Probleme? Zuweisungen solcher strings gehen doch problemlos:
Mein Testtext in Memo1 hatte 29229 Zeichen und da gibt es keinen Fehler bei der Zuweisung.
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var Testtext: string;
begin
Testtext := Memo1.Text;
ShowMessage(IntToStr(length(Testtext)));
end;
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
pluto hat geschrieben: text:='fahsjdfjöasdögljsaklöjgölkasjgklösajöglkjsalgjweigjrögj kmölkambmnbjahfgjahgöeuhguaöwrhguörhgahsöjghasöjnbvgkmnbmynxbmnyxjbfnurnbuarnbnbjnmnb,mynbgsagsagsaghsjahgjsaklhgjh78h43hgjj njnjangkajnglanjlgknsaljgnlasjngjlsangjnasgjasgjklnglrjg,'

Da hast du dir ja einen sehr aussagekräftigen Text ausgedacht
