Delphi-PRAXiS

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)

taktaky 14. Okt 2007 00:10


.Res Erstellen ( error : string literal too long )
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

weiß jemand über diese Meldung : Error string literal too long

Das Passiert wenn ich versuche eine .res mit ms dos mit dem befehl :

brcc32.exe myressource.rc zu erstellen

Die Datei .rc hat eine lange Liste
Was muss ich tun um diese Meldung zu beseitigen?

Billi Berserker 14. Okt 2007 00:11

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

Zitat von taktaky
Was muss ich tun um diese Meldung zu beseitigen?

Den Fehler beheben?

ohne weitere Informatione über die .rc Datei kann dir (hier) niemand helfen.

taktaky 14. Okt 2007 00:19

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

Zitat von Billi Berserker
Den Fehler beheben?

ohne weitere Informatione über die .rc Datei kann dir (hier) niemand helfen.

das kann sein, da ich in diesem Forum nach dem Stichwort gesucht habe : Treffer = 0 :mrgreen:

Google sagt mir was
der Fehler erscheint, da die Datei .rc mehr als 4000 Char hat.
Lösung !!!

<>

Zacherl 14. Okt 2007 00:27

Re: .Res Erstellen ( error : string literal too long )
 
Teil die Ressourcen in mehrere RC Dateien auf :P

taktaky 14. Okt 2007 00:34

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

Zitat von Zacherl
Teil die Ressourcen in mehrere RC Dateien auf :P

Ok, wenn keine andere alternative Lösung gibt, würde ich es tun :thumb:

<>

Zacherl 14. Okt 2007 00:36

Re: .Res Erstellen ( error : string literal too long )
 
Scheinbar gibt es mit dem Borland Resourcen Compiler keine Alternative. Allerdings rein interessehalber .. wie schaffst du es eine Ressourcen Daten mit Referenzen auf Binär / Textformate mit über 4000 Zeichen zu erstellen? :shock: Oder sind es alles Dialoge, etc die du direkt in Textform in die RC geschrieben hast?

marabu 14. Okt 2007 14:09

Re: .Res Erstellen ( error : string literal too long )
 
Was steht denn in Zeile 110 von MyRessource.rc?

taktaky 14. Okt 2007 15:24

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

Zitat von marabu
Was steht denn in Zeile 110 von MyRessource.rc?

jetzt habe ich die .rc geteilt. Weiß ich nicht mehr was in diese Zeile lag!

Aber bestimmt ab Zeile 110 fang das 4001 Zeichen an :mrgreen:

Es gibt bestimmt andere Source Compiler ausser von Borland und von Microsoft, die besser sind und akzeptieren mehr als 4000 Zeichen in der Datei .rc oder?



<>

Zacherl 14. Okt 2007 15:40

Re: .Res Erstellen ( error : string literal too long )
 
Ehm ehm ehm .. was heißt besser? Kannst ja mal nach googlen ;) Die von MS und CodeGear sind jedenfalls die bekantesten. Eventuell liegt es ja auch einfach im Format einer RC, bzw RES Datei, dass diese nicht größer als 4000 Zeichen sein darf. Oder du unterliegst irgendeiner Einschränkung (Trial Version? Turbos?) .. keine Ahnung.

Dezipaitor 14. Okt 2007 15:51

Re: .Res Erstellen ( error : string literal too long )
 
Jeder string in einer resource darf nicht länger als 255 Zeichen sein.

Mehr dazu hier:
http://blogs.msdn.com/oldnewthing/ar.../19/92648.aspx

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 17:39 Uhr.

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