Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi .Res Erstellen ( error : string literal too long ) (https://www.delphipraxis.net/101480-res-erstellen-error-string-literal-too-long.html)

marabu 14. Okt 2007 16:25

Re: .Res Erstellen ( error : string literal too long )
 
Hallo,

Zitat:

Zitat von Dezipaitor
Jeder string in einer resource darf nicht länger als 255 Zeichen sein.

ohne gewisse Randbedingungen zu setzen ist diese Aussage falsch:

Zitat:

Zitat von Windows SDK
For 16-bit string resources, 255 characters is the maximum length. For 32-bit string resources, 65535 characters is the maximum length.

Grüße vom marabu

Flocke 16. Okt 2007 07:38

Re: .Res Erstellen ( error : string literal too long )
 
Ist das noch ein offenes Problem?

Wenn ja, hier mein Senf: Die Fehlermeldung besagt nicht, dass die RC-Datei zu groß ist, sondern dass ein String-Literal darin länger als 4000 Zeichen ist. Dieser Fehler tritt z.B. dann auf, wenn du einen String mit einem Anführungszeichen beginnst und nicht wieder "schließt" oder wenn ein einzelne Zeile länger als 4000 Zeichen ist (Zeilenumbruchzeichen korrekt und konsistent? RC/BRCC ist da empfindlich!).

Ich habe hier auf der Platte RC-Dateien mit 40-50 KB, die sich selbst in zu 16-Bit Zeiten schon problemlos übersetzen ließen.

taktaky 16. Okt 2007 09:49

Re: .Res Erstellen ( error : string literal too long )
 
Zitat:

Zitat von Flocke
Ist das noch ein offenes Problem?

Wenn ja, hier mein Senf: Die Fehlermeldung besagt nicht, dass die RC-Datei zu groß ist, sondern dass ein String-Literal darin länger als 4000 Zeichen ist. Dieser Fehler tritt z.B. dann auf, wenn du einen String mit einem Anführungszeichen beginnst und nicht wieder "schließt" oder wenn ein einzelne Zeile länger als 4000 Zeichen ist (Zeilenumbruchzeichen korrekt und konsistent? RC/BRCC ist da empfindlich!).

Ich habe hier auf der Platte RC-Dateien mit 40-50 KB, die sich selbst in 16-Bit Zeiten schon problemlos übersetzen ließen.

>> Dieser Fehler tritt z.B. dann auf, wenn du einen String mit einem Anführungszeichen beginnst und nicht wieder "schließt"


Das konnte das Problem sein. Ich würde noch einmal die Liste in .rc erneut erstellen und wieder testen und sag ich euch später das Resultat

Danke!

Nuclear-Ping 16. Okt 2007 10:41

Re: .Res Erstellen ( error : string literal too long )
 
Ich arbeite hier auch mit .rc-Dateien die 70kB und mehr haben, als Sprachressourcen. Ergo muss der Fehler (mal wieder) irgendwo beim Anwender liegen.

Mark90 17. Okt 2007 16:48

Re: .Res Erstellen ( error : string literal too long )
 
ein string kann normalerweise nur 2^8 Zeichen enthalten.(ascii) -> teile ihn doch in mehrere strings auf!

Muetze1 17. Okt 2007 16:53

Re: .Res Erstellen ( error : string literal too long )
 
Zitat:

Zitat von Mark90
ein string kann normalerweise nur 2^8 Zeichen enthalten.(ascii) -> teile ihn doch in mehrere strings auf!

Falsch formuliert. Ein einzelnes Zeichen des Strings kann nur 2^8 unterschiedliche Zeichen annehmen/aufnehmen - aber auch bei einem AnsiString. Unicode/Wide ist da schon wieder was ganz anderes und ein 8 Bit Unicode string definiert einfach mal mehrere Bytes zu einem Zeichen.

Also, deine Aussage sagt rein gar nichts über die Länge eines Strings aus. Somit ist selbst die Aufteilung auch keine Lösung.

Mark90 17. Okt 2007 18:52

Re: .Res Erstellen ( error : string literal too long )
 
du hast recht. für ein zeichen wird 2^8 bit speicher verwendet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz