4D v14.3

Arrays und Zeiger

Home

 
4D v14.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.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays

 
SIEHE AUCH 

Arrays und die 4D Programmiersprache
Einführung in Arrays

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)