4D v16.3

Arrays und Zeiger

Home

 
4D v16.3
Arrays und Zeiger

Arrays und Zeiger  


 

 

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 dient.

Sie können als Parameter Prozess- und Interprozess-Arrays, sowie Prozess- und lokale Arrays übergeben.

  • 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

Hinweis: Seit 4D v13 können Sie einfach die Funktion Sum verwenden, um die Summe von Elementen in einem numerischen Array zu berechnen.

 $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.



Siehe auch 

Arrays und die 4D Programmiersprache
Einführung in Arrays

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)