Arrays und Zeiger

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 6.0


Sie können ein Array als Parameter für einen 4D Befehl oder eine Routine eines 4D Plug-In übergeben, jedoch nicht für eine Benutzermethode. Dafür müssen Sie dem Array einen Zeiger übergeben, der dann für die Benutzermethode als Parameter fungiert.

Hinweis: Prozess- und Interprozess-Arrays lassen sich als Parameter übergeben, lokale Arrays jedoch nicht.

Beispiele

Wir gehen von folgendem Beispiel aus:

   If ((0<atNames)&(atNames<Size of array(atNames))
         ` Wählt, falls möglich, das nächste Element nach dem ausgewählten Element
      atNames:=atNames+1 
   End if

Müssen Sie denselben Vorgang für 50 verschiedene Arrays in mehreren Formularen ausführen, vermeiden Sie mit nachfolgender Methode, 50 Mal dasselbe zu schreiben:

      ` Projektmethode SELECT NEXT ELEMENT 
      ` SELECT NEXT ELEMENT ( Zeiger )
      ` SELECT NEXT ELEMENT ( -> Array )

   C_POINTER ($1)

   If ((0<$1->)&($1-><Size of array($1->))
      $1->:=$1->+1 ` Wählt, falls möglich, das nächste Element nach dem ausgewählten Element
   End if

Schreiben Sie nun:

   SELECT NEXT ELEMENT (->atNames)
      ` ...
   SELECT NEXT ELEMENT (->asZipCodes)
      ` ...
   SELECT NEXT ELEMENT (->alRecordIDs)
      ` ... usw.

Folgende Projektmethode gibt die Summe aller Elemente eines numerischen Array zurück (Ganzzahl, Lange Ganzzahl, Zahl):

      ` Array sum
      ` Array sum ( Pointer )
      ` Array sum ( -> Array )

   C_REAL ($0)

   $0:=0
   For ($vlElem;1;Size of array($1->))
      $0:=$0+$1->{$vlElem}
   End for

Schreiben Sie nun:

   $vlSum:=Array sum (->arSalaries)
      ` ...
   $vlSum:=Array sum (->aiDefectCounts)
      ` ..
   $vlSum:=Array sum (->alPopulations)

Folgende Projektmethode setzt die Elemente eines Array vom Typ Alphanumerisch oder Text in Kapitälchen (Anfangsbuchstabe groß):

      ` CAPITALIZE ARRAY
      ` CAPITALIZE ARRAY ( Pointer )
      ` CAPITALIZE ARRAY ( -> Array )

   For ($vlElem;1;Size of array($1->))
      If ($1->{$vlElem}#"")
         $1->{$vlElem}:=Uppercase($1->{$vlElem}[[1]])+Lowercase(Substring($1->{$vlElem};2))
      End if
   End for

Schreiben Sie nun:

   CAPITALIZE ARRAY (->atSubjects )
      ` ...
   CAPITALIZE ARRAY (->asLastNames )

Die Kombination aus Arrays, Zeigern und Schleifen, wie z.B. For... End for, ergibt viele kleine nützliche Projektmethoden zum Verwalten von Arrays.

Referenz

Arrays und die 4D Programmiersprache, Einführung in Arrays.


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next