AGB  ·  Datenschutz  ·  Impressum  







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

wie Konstanten optimal verwalten

Ein Thema von dataspider · begonnen am 20. Feb 2006 · letzter Beitrag vom 20. Feb 2006
Antwort Antwort
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#1

wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 08:20
Hallo,

ich zerbreche mir gerade den Kopf, wie ich meine Feldnamen optimal verwalten kann.
Ich habe momentan eine Unit mit Konstanten für Feldnamen.
Delphi-Quellcode:
Const
  fn_Bez = 'bezeichnung';
  fn_name1 = 'name1';
  ...
Somit habe ich jetzt im Code irgendwo z.B. 20 mal FieldByName(fn_bez).AsString; stehen.
In die Exe wird dann 20 mal 'bezeichnung' eingetragen, da er ja Konstanten währen des Compilierens zieht.
Wie kann man das so optimieren, dass ich die Bezeichner nur einmal im Code habe und dann etwa:

  FieldByName(LoadFieldBez(@eine_Adresse)).AsString; Ich dachte schon dran, auf Variablen umzustellen. Aber vielleicht gibt es noch eine saubere Lösung, ohne den Überblick zu verlieren.

Danke, Frank
Frank Reim
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 08:40
Hallo Frank,

hast du schon resourcestring anstelle von const erwogen?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 08:47
Zitat von marabu:
Hallo Frank,

hast du schon resourcestring anstelle von const erwogen?

Grüße vom marabu
Ja, hab ich. Mich stört nur, dass Resourcestrings IMHO doppelt so lang wie Strings sind.

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 11:51
Also ich denke nicht, daß es da 'ne bessere Lösung gibt.
Und ResourceString ja nur doppelt so lang, da es als WideString (Unicode) gespeichert wird, außerdem wird dann jedesmal LoadFromResource und eine WideToAnsi-Konvertierung durchgeführt, wenn irgendwo der benötigte Wert vorkommt.

Wenn du statt Konstanten auf Variablen umsteigst, dann liegt das zwar nur einmal in der Exe rum, aber du hast dann die ganzen Feldnamen auch noch ständig im RAM rumliegen.

Delphi-Quellcode:
Var
  fn_Bez: String = 'bezeichnung';
  fn_name1: String = 'name1';
  ...

Aber eigentlich war ich der Meinung, das der Delphi-Compiler die String-Konstanten besser verwaltet und wenn eine solche Konstannte mehrfach vorkommt diese auch nur einmal in der Exe abgespeichert wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 11:52
Frank, ein word pro character wird zunehmend Standard - du solltest dich daran nicht so stören. Außerdem verbessert sich deine Bilanz doch immer noch deutlich. Wer weiß welche Einsparpotentiale du noch entdeckst, wenn du weiter suchst.

Freundliche Grüße

marabu
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 16:04
Ich weiss zwar noch nicht sicher, wie ich weiter verfahre. Aber trotzden schon mal meinen Dank an marabu und himitsu für die Hilfe.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 16:44
Zitat von dataspider:
Hallo,

ich zerbreche mir gerade den Kopf, wie ich meine Feldnamen optimal verwalten kann.
Ich habe momentan eine Unit mit Konstanten für Feldnamen.
Delphi-Quellcode:
Const
  fn_Bez = 'bezeichnung';
  fn_name1 = 'name1';
  ...
Somit habe ich jetzt im Code irgendwo z.B. 20 mal FieldByName(fn_bez).AsString; stehen.
In die Exe wird dann 20 mal 'bezeichnung' eingetragen, da er ja Konstanten währen des Compilierens zieht.
Wie kann man das so optimieren, dass ich die Bezeichner nur einmal im Code habe und dann etwa:

Danke, Frank
Das ist absuluter blödsinn hab gerade mal meine Exen durchsucht und da sind alle Consts nur einaml drin, obwohl ich diese min. 100-200 Mal aufrufe.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 16:49
sag ich doch ... selbst bei doppelter Definition sollte es dann nur einmal drin sein

Delphi-Quellcode:
Const
  fn_Bez1 = 'bezeichnung';
  fn_Bez2 = 'bezeichnung';
  ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: wie Konstanten optimal verwalten

  Alt 20. Feb 2006, 17:06
Zitat von franktron:
Zitat von dataspider:
Hallo,

ich zerbreche mir gerade den Kopf, wie ich meine Feldnamen optimal verwalten kann.
Ich habe momentan eine Unit mit Konstanten für Feldnamen.
Delphi-Quellcode:
Const
  fn_Bez = 'bezeichnung';
  fn_name1 = 'name1';
  ...
Somit habe ich jetzt im Code irgendwo z.B. 20 mal FieldByName(fn_bez).AsString; stehen.
In die Exe wird dann 20 mal 'bezeichnung' eingetragen, da er ja Konstanten währen des Compilierens zieht.
Wie kann man das so optimieren, dass ich die Bezeichner nur einmal im Code habe und dann etwa:

Danke, Frank
Das ist absuluter blödsinn hab gerade mal meine Exen durchsucht und da sind alle Consts nur einaml drin, obwohl ich diese min. 100-200 Mal aufrufe.
Mal abgesehen von der Ausdrucksweise...
Ich habe ein Mini - Prog erzeugt mit einer Konstante:
Delphi-Quellcode:
Const
  sTest = 'Schraps hat den Hut verloren...';
Diese habe ich 3 mal im Code eingebunden.
In der EXE kann ich diese genau 3 mal finden.
Vielleicht ist ja Delphi 2005 schon intelligenter und Delphi7 hat noch Blödsinn produziert...

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:18 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