AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi "E2283: Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren" Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

"E2283: Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren" Fehler

Ein Thema von MaBuSE · begonnen am 3. Feb 2011 · letzter Beitrag vom 8. Feb 2011
Antwort Antwort
Seite 3 von 3     123   
Patito

Registriert seit: 8. Sep 2006
108 Beiträge
 
#21

AW: "E2283: Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren" Fehler

  Alt 8. Feb 2011, 08:31
Vermutlich wird jeder String vom Compiler erst mal komprimiert,
und das geht eben besser wenn man nur einen großen String hat.

Taucht jeder Buchstabe einzeln in einer Add-Zeile auf, gäbe es ja praktisch gar keine Möglichkeit etwas zu komprimieren. Dass man das Limit mit einem einzelnen längeren String erst später erreicht ist dann eigentlich logisch.

Das Limit an sich ist aber so oder so zum kotzen.
Ich erinnere mich dunkel, dass ich mal eine Unit, in der es darum gieng einen längeren konfigurierbaren Text zusammenzubasteln, wegen diesem Unfug umschreiben mußte.

Delphi-Quellcode:
if (MyConfig.WantItemXYZ) then
 List.Add('xyz')
else
 List.Add('---');
 ...
Wenn man viele solche Zeilen hat, nützen einem die Komprimier-Tricks vom Compiler nix.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: "E2283: Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren" Fehler

  Alt 8. Feb 2011, 08:45
Ich bin mir relativ sicher, daß der Compiler nichts komprimiert.

Denn wozu soll das gut sein?
- er bekommt die Strings unkomprimiert
- er muß die Strings dann unkomprimiert abspeichern/verarbeiten
- beim Vergleichen von Strings macht sich schwieriger (falls es mal gleiche gibt, welche man dann als einen String verwalten könnte)
- das Debuggen des Compilers verbessert es auch nicht, da dann ja quasi alles "verschlüsselt" wäre
= kurz um, er kommt mit unkomprimierten Strings besser aus ... Alles andere wäre nur umständlich und eine zusätzliche Fehlerquelle ... ich als Compilerentwickler hätte mir diese zusätzliche Arbeit garantiert erspart.
$2B or not $2B

Geändert von himitsu ( 8. Feb 2011 um 08:54 Uhr)
  Mit Zitat antworten Zitat
Patito

Registriert seit: 8. Sep 2006
108 Beiträge
 
#23

AW: "E2283: Zu viele lokale Konstanten. Verwenden Sie kürzere Prozeduren" Fehler

  Alt 8. Feb 2011, 08:56
Es spricht viel dafür, dass der Compiler intern für die Strings ein Dictionary anlegt.
Und letztenendes ist es nur Wortklauberei, ob man das jetzt Komprimierung nennt oder nicht.
(Dictionary compression...)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 14:58 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