AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lokale Konstanten in D2009 begrenzt?

Ein Thema von hanspeter · begonnen am 8. Jan 2009 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#11

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 12. Jan 2009, 00:18
Kann es sein, daß unter D2009 die Konstanten aufgrund des Unicode länger sind und du somit an eine Grenze gestoßen bist?
(man könnte ja mal versuchen in den alten Delphi-Versionen entsprechend mit doppelt so langen Stringkonstanten zu testen )

diese typisierten Stingkonstanten haben intern ja mehr den Charakter von Variablen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#12

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 12. Jan 2009, 07:55
Zitat von himitsu:
Kann es sein, daß unter D2009 die Konstanten aufgrund des Unicode länger sind und du somit an eine Grenze gestoßen bist?
(man könnte ja mal versuchen in den alten Delphi-Versionen entsprechend mit doppelt so langen Stringkonstanten zu testen )

diese typisierten Stingkonstanten haben intern ja mehr den Charakter von Variablen
Das kann schon sein.
Bei Delphi 1 + 2 gab es die Beschränkung auf 255 Zeichen.
Von D3 bis D2007 gab es die Beschränkung nicht. Jetzt gibt es diese wohl wieder.
Mein Programm ist nur durch Neukompilierung unter D2009 von 4,5 auf 6.4 MByte, also fast 2 Mbyte angeschwollen.

Gruß
Peter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#13

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 12. Jan 2009, 11:47
Zitat von hanspeter:
Von D3 bis D2007 gab es die Beschränkung nicht. Jetzt gibt es diese wohl wieder.
ich hab/hatte die auch in D4, D7 und D2006 drin.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#14

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 12. Jan 2009, 12:44
Zitat von himitsu:
ich hab/hatte die auch in D4, D7 und D2006 drin.
Dann hast du ein anderes Delphi als ich.
Probiere es doch einfach aus, wenn Du meinst den Besserwisser spielen zu müssen.

Delphi-Quellcode:
const
  H1 = '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890'+
       '1234567890123456789012345678901234567890123456789012345678901234567890';


procedure Test(t : String);
begin
  showmessage(inttostr(length(t)));
end;

Unter D7 bis D2007 wird eine Länge von 1400 angezeigt und unter D2009 kommt ein Fehler.

Peter
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#15

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 12. Jan 2009, 13:02
Zitat von hanspeter:

Dann hast du ein anderes Delphi als ich.
Probiere es doch einfach aus, wenn Du meinst den Besserwisser spielen zu müssen.

Unter D7 bis D2007 wird eine Länge von 1400 angezeigt und unter D2009 kommt ein Fehler.

Peter
Hallo, bei mir kommt keine Fehlermeldung unter D2009.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#16

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 12. Jan 2009, 16:52
Zitat von hanspeter:
Zitat von himitsu:
ich hab/hatte die auch in D4, D7 und D2006 drin.
Dann hast du ein anderes Delphi als ich.
Probiere es doch einfach aus, wenn Du meinst den Besserwisser spielen zu müssen.
Dann hast du was falsch verstanden, denn H1 is ein String aus 20 70-Zeichen-langen (einzelnen) Stringkonstanten und das geht mindestens schon seit D4 (frühere Versionen kenn ich kaum) und ist auch so geblieben.

Probier es doch selber mal, mit dieser 300-Zeichen-Konstante
Delphi-Quellcode:
H1 = '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
';
[edit]Zeileiumbrüche eingefügt, um das DP-Design nicht weiter zu zerstören ... diese müsten beim Probieren entfernt werden
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#17

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 13. Jan 2009, 08:06
Zitat von himitsu:
Dann hast du was falsch verstanden, denn H1 is ein String aus 20 70-Zeichen-langen (einzelnen) Stringkonstanten und das geht mindestens schon seit D4 (frühere Versionen kenn ich kaum) und ist auch so geblieben.
Man lass es gut sein. Das tut ja schon weh.
Ich habe nach der Konstantenlänge, im Zusammenhang mit einer in D2009 neu aufgetauschten und nicht dokumentierten Fehlermeldung, gefragt und nicht nach der maximalen Länge einer Quellzeile.
Diese sollte man ohnehin im Interesse der Lesbarkeit auf 80 bis 120 Zeichen begrenzen.
Taucht in einer Konstantendefinition am Ende der Anweisung das "+" auf, dann wird die Konstante zur Compilerzeit
zusammengefügt.
Da dies zur Compiler- und nicht zur Laufzeit erfolgt, käme z.B. mit Resourcenstrings eine Fehlermeldung.
Da ich seit TP 1.0 bereits professionell mit Pascal programmiere, sollte mir der Unterschied zwischen Codezeilen- und
Konstantenlänge zwischenzeitlich klar sein.

Peter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 13. Jan 2009, 08:53
Kannst du nicht ein komplettes Beispiel zum Testen nachhängen? Wenn bei toms dein Codeauszug kompilierbar ist, ist es doch kein generelles Problem. Evtl. irgendwelche Compilereinstellungen oder Defines.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#19

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 13. Jan 2009, 09:25
Zitat von Bernhard Geyer:
Kannst du nicht ein komplettes Beispiel zum Testen nachhängen? Wenn bei toms dein Codeauszug kompilierbar ist, ist es doch kein generelles Problem. Evtl. irgendwelche Compilereinstellungen oder Defines.
Ich bin noch am Probieren und will den Fehler am Wochenende mal lokalisieren.
Wegbekommen habe ich diesen erst mal indem ich aus allen Konstanten typisierte Konstanten gemacht habe.
Im Moment bin ich auch erst mal wieder auf D2007 zurück gegangen, da es noch mehr Probleme bei der Umstellung gibt und
ich mich noch nicht mit der Tatsache anfreunden kann, das ein Programm durch Neucompilieren etwa ein Drittel größer wird.

Gruß
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#20

Re: Lokale Konstanten in D2009 begrenzt?

  Alt 13. Jan 2009, 09:37
Zitat von hanspeter:
Im Moment bin ich auch erst mal wieder auf D2007 zurück gegangen, da es noch mehr Probleme bei der Umstellung gibt und
ich mich noch nicht mit der Tatsache anfreunden kann, das ein Programm durch Neucompilieren etwa ein Drittel größer wird.
Wenn die Hälfte deiner EXE aus AnsiStrings bestand (String-Properties in DFMs mitgerechnet), dann ist das aber durchaus nachvollziehbar.
Uwe Raabe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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