Freepascal: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 39: Zeile 39:
</code>
</code>


"param" Variable sind wie "var" Variable, die aber erst gesetzt werden, wenn ein (erster) lesender Zugriff erfolgt. Das "Setzen" des VAriablen-Wertes erfolgt gar nicht, an dieser Stelle wird kein Code ausgeführt, erst beim ersten Vergleich wird "MomentTimeout" gesetzt. Danach wird MomentTimeout wie eine normale Variable verwendet.
"param" Variable sind wie "var" Variable, die aber erst gesetzt werden, wenn ein (erster) lesender Zugriff erfolgt. Das "Setzen" des VAriablen-Wertes erfolgt gar nicht, an dieser Stelle wird kein Code ausgeführt, erst beim ersten Vergleich wird "MomentTimeout" gesetzt. Danach wird MomentTimeout wie eine normale Variable verwendet. Dadurch lässt sich der Code übersichtlicher gestalten. Man kann die "gathering" Phase schön beisammenhalten - auch wenn die die Kosten hoch sind. Es wird jedoch keine Zeit verbraten, und eine Menge komplexe if-Bedingungen gespart.

Version vom 7. Juli 2014, 14:51 Uhr

Freepascal oder fpc ist ein freier Pascal / Delphi(tm) Compiler. Der Entwicklungsstand kann mit Turbo Pascal(tm) 7.0 erweitert um aktuelle Delphi(tm) Sprachelemente verglichen werden. OrgaMon verwendet Freepascal für die Linux-Server-Seite des OrgaMon in den Projekten keepcon, domadd, cOrgaMon.

Installation

Für OpenSuse sollten ausschliesslich für diese Plattform compilierte Pakete verwendet werden. Das 64-Bit Paket von Sourceforge wird nicht laufen! Also besser hier:

https://build.opensuse.org/package/show?package=fpc&project=devel%3Alanguages%3Apascal

Installation 2

zypper ar http://download.opensuse.org/repositories/devel:/languages:/pascal/openSUSE_Factory/devel:languages:pascal.repo
zypper install fpc

Spracherweiterungen

"param" anstelle von "var"

param
 MomentTimeout : ANFiXDate;
 c,i,r : integer;
 
begin
   // all zu alte Einträge löschen
   MomentTimeout := DatePlus(DateGet, -10);
   i := 0;
   c := colOf('MOMENT');
   for r := RowCount downto 1 do
     if (StrToIntDef(readCell(r, c), 0) < MomentTimeout) then
     begin
       del(r);
       inc(i);
     end;
   if (i > 0) then
     Log('INFO: ' + 'gebe ' + inttostr(i) +
       ' Dateieinträge frei, da sie älter als 10 Tage sind');
end;

"param" Variable sind wie "var" Variable, die aber erst gesetzt werden, wenn ein (erster) lesender Zugriff erfolgt. Das "Setzen" des VAriablen-Wertes erfolgt gar nicht, an dieser Stelle wird kein Code ausgeführt, erst beim ersten Vergleich wird "MomentTimeout" gesetzt. Danach wird MomentTimeout wie eine normale Variable verwendet. Dadurch lässt sich der Code übersichtlicher gestalten. Man kann die "gathering" Phase schön beisammenhalten - auch wenn die die Kosten hoch sind. Es wird jedoch keine Zeit verbraten, und eine Menge komplexe if-Bedingungen gespart.