AGB  ·  Datenschutz  ·  Impressum  







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

Code-Stil Frage

Ein Thema von Tommy1988 · begonnen am 10. Jul 2007 · letzter Beitrag vom 10. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tommy1988
(Gast)

n/a Beiträge
 
#1

Code-Stil Frage

  Alt 10. Jul 2007, 15:48
Hallo, ich habe diesen Code hier:

Delphi-Quellcode:
dif := 'BlaBla';
.
.
.
Label1.Caption := Format('Text BlaBla %s',[dif]);
Jetzt stelle ich mir die Frage, ob der folgende Code "gerechter" ist:

Delphi-Quellcode:
dif := 'BlaBla';
.
.
.
Label1.Caption := 'Text BlaBla '+dif;
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Code-Stil Frage

  Alt 10. Jul 2007, 15:51
Wegen der besseren Lesbarkeit würde ich die zweite Version bevorzugen. Dürfte sich aber nicht viel schenken

  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#3

Re: Code-Stil Frage

  Alt 10. Jul 2007, 15:54
Delphi-Quellcode:
dif := 'BlaBla';
dif2 := 'Blaaa2';

Label1.Caption := 'Text BlaBla '+dif+' meeeehr Text und wieder'+dif2;
Wäre jetzt es so aber besser oder ?

Delphi-Quellcode:
dif := 'BlaBla';
dif2 := 'Blaaa2';
.
.
.
Label1.Caption := Format('Text BlaBla %s meeeehr Text und wieder %s',[dif,dif2];
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Code-Stil Frage

  Alt 10. Jul 2007, 15:55
Nö, denn %d ist nicht kompatibel zu einer String-Variablen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: Code-Stil Frage

  Alt 10. Jul 2007, 15:56
Weiterhin finde ich die Version ohne Format besser. Man sieht einfach schneller was der Output nun wirklich ist

Wenn dann aber so
Label1.Caption := 'Text BlaBla ' + dif + ' meeeehr Text und wieder ' + dif2;
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: Code-Stil Frage

  Alt 10. Jul 2007, 15:58
Hi,
es wäre schon ein schlechter Style-Guide, der Label1 als Bezeichner zulässt

An sich gibt es ja keinen sinnvollen Grund Ersteres zu verbieten, es handelt sich um eine Funktion, deren Rückgabe ein String ist. Dass es zufällig eine Formatierungsfunktion ist, deren Funktion Du nachbilden kannst ist eigentlich egal. Immerhin dürfte das für viele Funktionen gelten und trotzdem wird man eher auf Bibliotheken zurückgreifen. Hier wäre also die Frage, ab wann man da eine Ausnahme macht. Dürfte kaum eine "scharfe" Grenze geben, deswegen sollte man es also für alle Funktionen erlauben und damit auch für Format. Kann ja auch Vorteile haben (sobald eben nicht nur ein String angehangen wird).

Gruß Der Unwissende

[edit]
Wo kommen denn die Beiträge alle her?! Roter Kasten wo bist DU?!

Dann ist die Quizfrage doch was ist schöner:

Delphi-Quellcode:
Label1.Caption := 'Irgendein Text ' + var1 + 'noch mehr Text ' + IntToStr(var2);

// oder

Label1.Caption := Format('Irgendein Text %s noch mehr Text %d',
                         [var1, var2]);
[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Code-Stil Frage

  Alt 10. Jul 2007, 16:01
Wenn Du viele Daten unterschiedlicher Typen darstellen willst, finde ich die Format-Lösung einfach besser als mit 20 IntToStr herumzuhantieren. Bei reinem Text kann man ja die einfache Konkatenation wählen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#8

Re: Code-Stil Frage

  Alt 10. Jul 2007, 16:07
Na in jedem Fall letzeres. Sobald das was im Moment noch fester String ist aus einer Ressource kommt und ggf. in verschiedene Sprachen übersetzt wird, wirds beim zweiten Fall braun.
Ein Beispiel:
Delphi-Quellcode:
deutsch
   Format('Die datei wurde am %s1. %s2 zum letzen mal geändert.',['19','Mai']);
englisch
   Format('The file was last modified on %s2 %s1.',['19','Mai']);
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#9

Re: Code-Stil Frage

  Alt 10. Jul 2007, 16:09
Ich finde man sollte (wie gesagt) nicht für bestimmte Typen unterscheiden, ob der eine oder der andere Weg genommen wird. Ein Codestil sollte vorallem konsequent sein und das wäre es (imho) nicht, wenn man für Strings die einfache Konkatentaion wählt und sonst Format.
Was man nimmt sollte nie eine reine Frage des Stils sein. Ohne zu wissen wie Format im Detail arbeitet, es könnte ggf. etwas perfomanter sein, wenn die Funktion intern nicht mit einfacher Konkatenation arbeitet (Strings sind ja in der Länge statisch), sondern wenn gleich Speicher in der richtigen Größe alloziert und dann entsprechend gefüllt wird.

Auch das Beispiel von Sidorion (endlich funktioniert der rote Kasten auch bei mir!) zeigt, dass man es eben von anderen Dingen als den Stil abhängig machen sollte.

[edit]
falschen Namen getippt und korrigiert
[/edit]
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#10

Re: Code-Stil Frage

  Alt 10. Jul 2007, 16:19
Da kann ich Sidorio nur zustimmen. Sobald du mit dem Gedanken spielst in MultiLanguage einzusteigen ist die Variante mit dem "Format" fast zwingend notwendig.
Ich persönlich finde diese Version generell auch etwas übersichtlicher (vor allem bei mehreren Varaiblen anteilen).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:26 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