Element Null eines Array verwenden

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


Ein Array hat immer ein Element Null. Es erscheint zwar nicht in einem Array für ein Formularobjekt, es kann jedoch uneingeschränkt in der Programmiersprache eingesetzt werden.

Ein Beispiel dafür haben Sie bereits im Abschnitt Arrays und Formularobjekte unter Combo Boxen gesehen. Hier folgen weitere Beispiele.

1. Eine bestimmte Aktion soll nur ausgeführt werden, wenn ein anderes Element als das zuvor gewählte angeklickt wird. Dazu müssen Sie jedes ausgewählte Element verfolgen. Sie könnten eine Prozessvariable mit der Elementnummer des ausgewählten Elements einsetzen oder wie nachfolgend beschrieben, das Element Null:

      ` Objektmethode rollbarer Bereich atNames
   Case of
      : (Form event=On Load)
            ` Initialisiere das Array (wie bereits oben gezeigt)
         ARRAY TEXT (atNames;5)
            ` ...
            ` Initialisiere das Element Null mit der Nummer des gerade ausgewählten
            ` Elements im Texformular
            ` Hier starten Sie mit keinem ausgewählten Element
         atNames{0}:="0"

      : (Form event=On Unload)
            ` Wir benötigen das Array nicht mehr
         CLEAR VARIABLE(atNames)

      : (Form event=On Clicked)
         If (atNames#0)
            If (atNames#Num(atNames{0}))
               vtInfo:="Sie haben geklickt auf: "+atNames{atNames}+" 
                      und es wurde vorher noch nicht ausgewählt."
               atNames{0}:=String(atNames)
            End if
         End if
      : (Form event=On Double Clicked)
         If (atNames#0)
            ALERT ("Sie haben doppelgeklickt auf: "+atNames{atNames}
         End if
   End case

2. Beim Senden oder Empfangen von Zeichenketten zu oder aus einem Dokument bzw. serieller Schnittstelle können folgende 4D Befehle ASCII Codes zwischen Plattformen und Systemen mit unterschiedlichen ASCII Sätzen filtern: ASCII MAP, Mac to ISO, ISO to Mac, Mac to Win und Win to Mac.

In bestimmten Fällen wollen Sie die Übersetzung von ASCII Codes selbst steuern. Sie können dafür ein Array vom Typ Ganzzahl mit 255 Elementen verwenden, wobei das n-te Element den Wert des übersetzten ASCII Code für das Zeichen mit dem ASCII Quellcode N hat. Soll zum Beispiel der ASCII Code #187 als #156 übersetzt werden, schreiben Sie in der Methode zum Initialisieren der Interprozess-Arrays für die gesamte Datenbank <>aiCustomOutMap{187}:=156 and <>aiCustomInMap{156}:=187. Dann können Sie mit folgender selbstgestalteten Projektmethode eine Zeichenkette senden:

      ` X SEND PACKET ( Text { ; Time } )
   For ($vlChar;1;Length($1))
      $1[[vlChar]]:=Char(<>aiCustomOutMap{Ascii($1[[vlChar]])})
   End for
   If (Count parameters>=2)
      SEND PACKET ($2;$1)
   Else
      SEND PACKET ($1)
   End if
      ` X Receive packet ( Text { ; Time } ) -> Text
   If (Count parameters>=2)
      RECEIVE PACKET ($2;$1)
   Else
      RECEIVE PACKET ($1)
   End if
   $0:=$1
   For ($vlChar;1;Length($1))
      $0[[vlChar]]:=Char(<>aiCustomInMap{Ascii($0[[vlChar]])})
   End for

Wird in diesem komplexen Beispiel eine Zeichenkette OHNE Zeichen (ASCII Code Null) gesendet oder empfangen, hat das Element Null der Arrays <>aiCustomOutMap und <>aiCustomInMap dieselbe Rolle wie jedes andere Element aus dem Arrays mit 255 Elementen.

Referenz

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