Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie würde diese Zeile nach dem Pascal Style-Guide aussehen? (https://www.delphipraxis.net/47796-wie-wuerde-diese-zeile-nach-dem-pascal-style-guide-aussehen.html)

Pseudemys Nelsoni 16. Jun 2005 12:33


Wie würde diese Zeile nach dem Pascal Style-Guide aussehen?
 
Moin,

ich habe viele lange zeilen in meinem code und Frage mich daher, wies es richtig - ich weiss das es da (eigentlich) keine regeln gibt - auszusehen hat.

Wie würden die Borlander wohl diese Zeile schreiben?

Delphi-Quellcode:
Query := PChar(Format('INSERT INTO %s(nickname, password, email, newsletter, shareinfo) ', [TABLE_USERS]) + Format('VALUES(%0:s%1:s%0:s,%0:s%2:s%0:s,%0:s%3:s%0:s,%0:s%4:d%0:s,%0:s%5:d%0:s);', [#39, Nick, iif(MD5Pass, MD5DigestToStr(MD5String(_enc(Pass))), _enc(Pass)), Mail, Newsletter, ShareInfo]));
Nicht über das doppelte Format wundern, ich hatte die Zeile bei mir nur aufgeteilt...

Wie würde die Funktion und vorallem wo geteilt werden? Für einen Einzeiler wäre das ja ein bisschen lang. Und wenn aufgeteilt wird, wieviele Zeilen rückt man ein?

Khabarakh 16. Jun 2005 12:44

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Nach dem DelphiTreff-StyleGuide:
Zitat:

Eine einfache Anweisung enthält einen einzelnen Strichpunkt. Wenn es nötig ist, die Anweisung auf mehrere Zeilen zu verteilen, rücken Sie die zweite Zeile zwei Leerstellen mehr ein als die vorherige Zeile.
Wobei 1 Tab natürlich besser wäre.
Den Zeilenumbruch würde ich an einer möglichst niedrigen "Klammern-Ebene" machen:
Delphi-Quellcode:
Query := PChar(Format('INSERT INTO %s(nickname, password, email, newsletter, shareinfo) ',
  [TABLE_USERS]) + Format('VALUES(%0:s%1:s%0:s,%0:s%2:s%0:s,%0:s%3:s%0:s,%0:s%4:d%0:s,%0:s%5:d%0:s);',
  [#39, Nick, iif(MD5Pass, MD5DigestToStr(MD5String(_enc(Pass))), _enc(Pass)), Mail, Newsletter, ShareInfo]));

Pseudemys Nelsoni 16. Jun 2005 12:46

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
danke dir ;) genauso haette ich es auch gemacht, ich wusste halt nur nicht ob es richtig ist ;)

Robert Marquardt 16. Jun 2005 12:51

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Die erlaubte Zeilenlaenge muss man selber festlegen. Bei der JVCL haben wir uns auf 120 Zeichen geeinigt.
Delphi-Quellcode:
Query := PChar(Format('INSERT INTO %s(nickname, password, email, newsletter, shareinfo) ', [TABLE_USERS]) + 
  Format('VALUES(%0:s%1:s%0:s,%0:s%2:s%0:s,%0:s%3:s%0:s,%0:s%4:d%0:s,%0:s%5:d%0:s);',
    [#39, Nick, iif(MD5Pass, MD5DigestToStr(MD5String(_enc(Pass))), _enc(Pass)), Mail, Newsletter, ShareInfo]));
Die Einrueckung ist ueblicherweise 2 Leerzeichen. Tabulatoren sollte man vermeiden.
Beim obengenannten Statement wuerde ich wie gezeigt umbrechen.
Die Idee dabei ist wenn moeglich die durch Komma getrennten Einheiten nicht auseinanderzureissen. das gleiche gilt fuer die eckigen Klammern.
So bleibt es am leichtesten zu verstehen.

Da war jemand schneller :-)
Ich bin gegen Tabulatoren! Sobald jemand abweichende Tabstops im Editor einstellt, passt alles nicht mehr zusammen.

"[TABLE_USERS)" sollte auf der ersten Zeile bleiben, da es zum ersten Format gehoert.
Die dritte Zeile wird gegenueber der zweiten Zeile eingerueckt, da sie ja Teil des zweiten Format ist.

alcaeus 16. Jun 2005 12:55

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Zitat:

Zitat von Pseudemys Nelsoni
Wie würden die Borlander wohl diese Zeile schreiben?

Das ist wohl nebensaechlich, die schlagen ja auch Spaces anstatt Tabs vor :wall:

Meine Meinung: obige Zeile ist - egal wie schoen aufgeteilt - immer noch zu haesslich um in einem Programm zu landen. Da kennt sich ja kein Mensch aus. Ich weiss ja nicht was genau du vorhast, aber wenn moeglich, loese das Zeug mit Paremetern. Diesen zweiten Format-Befehl haelt man ja im Kopf nicht aus. Anstatt immer mit den Indizes beim Format und dem #39 als ersten "Parameter" rumzubasteln, guck dir mal Delphi-Referenz durchsuchenQuotedStr an.

Also ich persoenlich wuerde das so schreiben:

Delphi-Quellcode:
EncPass := QuotedStr(iif(MD5Pass, MD5DigestToStr(MD5String(_enc(Pass))), _enc(Pass)));
QueryStr := Format('INSERT INTO %s (nickname, password, email, newsletter, shareinfo) ', [TABLE_USERS]);
QueryStr := QueryStr + Format('VALUES (%s, %s, %s, %d, %d)', [QuotedStr(Nick), EncPass, QuotedStr(Mail), Newsletter, ShareInfo]);
Query := PChar(QueryStr);
Ich weiss nicht wie du auf die geniale Idee gekommen bist, Integers in Quotes zu setzen, dies ist in SQL nicht ueblich. Vielmehr solltest du einfach sicherstellen, dass du auch Integers hast (jeder der mal ein Query in PHP zusammengefriemelt hat weiss wovon ich rede).

Greetz
alcaeus

Catbytes 16. Jun 2005 13:07

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Hilft Dir das weiter?

Robert Marquardt 16. Jun 2005 13:12

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Fangen wir einen Tabulator gegen Spaces Flamewar an ;-)

Nein? Schade :-(

Robert_G 16. Jun 2005 13:23

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Zitat:

Zitat von Robert Marquardt
Fangen wir einen Tabulator gegen Spaces Flamewar an ;-)

Naja, wir sind da 2 gegen einen und bisher hat sich noch jedes Argument gegen Tabs als Käse entpuppt.
Hast du da etwas handfestes?

ziemlich OT:
Warum erinnert mich das an einen Kommentar aus der Trollhöhle? :gruebel:
Zitat:

There is no need to add gimmicks to Delphi.
Der war mir genauso unsympathisch...

Robert Marquardt 16. Jun 2005 14:43

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Das Argument gegen Tabs ist das je nach Tab-Einstellung des Users die Source unterschiedlich dargestellt wird.

Bei den Spracherweiterungen landet man am Ende bei so etwas wie C++ das nur noch wenige Experten voll nutzen koennen.
Damit geraten Firmen aber in die Produktivitaetsfalle. Der Job ist mit den tollen Features schneller erledigt,
aber man kriegt keinen der seltenen Experten die es ueberhaupt koennen.

jfheins 16. Jun 2005 14:48

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Zitat:

Zitat von Robert Marquardt
Das Argument gegen Tabs ist das je nach Tab-Einstellung des Users die Source unterschiedlich dargestellt wird.

Umgekehrt wird ein Schuh draus ... (Sagt man das so ?)

Der Vorteil von Tabs ist, dass sie je nach Tab-Einstellung unterschiedlich dargestellt werden, und ich so meinem Partner o.a. nicht meine Einrückweite aufzwinge. Mein Bruder bsw. rückt mit 8 Leerzeichen ein, ich mit 2, wenn wir Tabs benutzen, sieht's jeder, wie er es sehen will ;)

alcaeus 16. Jun 2005 14:52

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
*hust* Jungs...haengt euch bitte nicht hier am Vorteil/Nachteil von Tabs auf.

Das koennt ihr gerne in einem anderen Thread diskutieren. In meinem Post sollte es nur ein wenig Ironie ausdruecken.
Also, kommt bitte wieder zum Thema zurueck. Danke

Greetz
alcaeus

Pseudemys Nelsoni 16. Jun 2005 15:50

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Zitat:

Die erlaubte Zeilenlaenge muss man selber festlegen. Bei der JVCL haben wir uns auf 120 Zeichen geeinigt.
Dann werde ich das auch ein wenig erhöhen ;) Die Linie im Delphi-Editor nervt mich nur immer die wohl als "Grenze" diensen soll.

Zitat:

QuotedStr
kannte ich noch nicht ;)

Zitat:

Ich weiss nicht wie du auf die geniale Idee gekommen bist, Integers in Quotes zu setzen, dies ist in SQL nicht ueblich.
Das auch nicht ;) Ich beschäftige mich nur mit SQL weil ich das für mein prog brauche. ;)

Zitat:

Hilft Dir das weiter?
Vielleicht, aber ich verwende keine 3rd-Party-Komponenten ;)


Insgesamt danke ich auch allen - Danke ;)


@Tabs: Ich möchte das Thema jetzt nicht neu aufreissen, aber da das hier ja eh zuende ist wollte ich da nochwas anhängen: Ich benutze auch keine Tabs in C++ sondern 4 Leerzeichen, ein Kollege meinte das sei besser. Mittlerweile hab ich mich daran auch gewöhnt.

Ciao.

alcaeus 16. Jun 2005 15:53

Re: Wie würde diese Zeile nach dem Pascal Style-Guide ausseh
 
Zitat:

Zitat von Pseudemys Nelsoni
Dann werde ich das auch ein wenig erhöhen ;) Die Linie im Delphi-Editor nervt mich nur immer die wohl als "Grenze" diensen soll.

Die Linie kannst du auch verstellen: Tools->Editor properties. Dort auf "Display", und right margin vergroessern, oder den Haken bei der Checkbox wegmachen ;)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz