Startseite
Amiforce 2.1     Amiforce-News Amiforce-News Amiforce-Forum Amiforce-Forum Amiforce-Chat/IRC-Chat Amiforce-Chat/IRC-Chat Gästebuch Gästebuch Kontakt mit dem Webmaster aufnehmen Kontakt mit dem Webmaster aufnehmen

Amiblitz3
Amiblitz2(alt)
Storm Wizard
Abakus-Design
Helpguide
Toolsguide
Tipps&Tricks
Gamesfun
Links
Download
Musik

Bugfixes am Forum
Subdomains aktiviert
Counterscript entfernt
  Navigation:   Index /  Amiblitz /  Amiblitz Lesematerial /  Ab2 Referenzhandbuch (index) /  Ab2 Referenzhandbuch (Kapitel 12) / 

Referenzhandbuch



Referenzhandbuch

Kapitel 12


Kapitel 11 Inhaltsverzeichnis Kapitel 13

Handhabung der Variablen


Das folgende Kapitel befaßt sich mit den Kommandos für die in AB2 verwendbaren Variablen. Sie lernen hier die Anwendung der Standardtypen und die NewType-, Array-, List- und Databefehle kennen.

NewType ist die AB2-Antwort auf C-Strukturen.

  • Let
  • Data
  • Read
  • Restore
  • Exchange
  • MaxLen
  • DEFTYPE
  • NEWTYPE
  • End NEWTYPE
  • SizeOf
  • Dim
  • ResetList
  • ClearList
  • AddFirst
  • AddLast
  • AddItem
  • KillItem
  • PrevItem
  • NextItem
  • FirstItem
  • LastItem
  • PushItem
  • PopItem
  • ItemStackSize
  • Sort
  • SortUp
  • SortDown



  • Index

    Befehl: Let

    Syntax: Let var =/ Operator

    Modus: Amiga/Blitz


    Let weist einer Variablen einen Wert zu. Let ist optional und braucht nicht unbedingt mitgeschrieben zu werden (Let a = 5 oder a = 5). Nach Let folgt immer ein Variablename und eine Wertangabe. Normalerweise wird für die Wertzuweisung das =-Zeichen verwendet. Es kann aber auch ein Operator (z.B. +) verwendet werden.

    Hier einige Beispiele:

      Let a=10  ;a entspricht 10
      Let a=b*5 ;a entspricht 5 mal b
      Let k+1   ;addiere 1 zu k
      Let z*5   ;multipliziere z mit 5
    




    Index

    Befehl: Data

    Syntax: Data [.Type] Element[,Element]

    Modus: Amiga/Blitz


    Mit Data können Variablenwerte oder Zeichenfolgen hintereinander aufgeführt und bei Bedarf mit dem Read-Befehl eingelesen werden.Type bezeichnet den Variablentyp (String, Wort usw.). Achten Sie darauf, daß immer nur Data -Elemente mit Read eingelesen und Variablen zugewiesen werden, die typmäßig zueinander passen.

    Beispiel:

      Read a$,b,c.w                     ;Lese die 3 Dataelemente
      NPrint a$                         ;Zeige diese an
      NPrint b
      NPrint c.w
      MouseWait
      End
    
      Data$ "Einige Data zum Einlesen"  ;Stringdata
      Data 10                           ;Quickdata
      Data .w -2                        ;Worddata
    


    siehe auch: Read, Restore



    Index

    Befehl: Read

    Syntax: Read Var[,Var...]

    Modus: Amiga/Blitz


    Mit Read werden die einzelnen Data -Elemente in Variablen übertragen. Die Übertragung erfolgt sequentiell (nacheinander) vom ersten bis zum letzten Element. Damit das Programm weiß, welches Element an der Reihe ist, wird ein Data-Zeiger benutzt. Mit dem Restore-Befehl ist ein gezieltes Setzen des Zeigers möglich.

    siehe auch: Data, Restore



    Index

    Befehl: Restore

    Syntax: Restore [Programm Label]

    Modus: Amiga/Blitz


    Restore setzt den Data-Zeiger auf das 1. Element einer Data-Serie, die mit Label näher bezeichnet ist. Restore ohne Angabe von Label setzt den Data-Zeiger auf das 1. Element der 1. Data-Zeile.

    Beispiel:

           Read a$,b$
           Restore d1
           Read c$
           NPrint a$
           NPrint b$
           NPrint c$
           MouseWait
           End
    
           Data$ "Ich","will","nicht","alles"
      d1:  Data$ "mehr","viel mehr"
    


    siehe auch: Data, Read



    Index

    Befehl: Exchange

    Syntax: Exchange Var,Var

    Modus: Amiga/Blitz


    Tauscht den Wert zweier Variablen aus. Die Variablen müssen gleichen Types sein.

    Beispiel:

      a=10          ;packe 10 in a
      b=20          ;packe 20 in b
      NPrint a      ;zeige a & b an
      NPrint b
      Exchange a,b  ;vertausche a und b
      NPrint a      ;zeige a und b an
      NPrint b
      MouseWait
      End
    




    Index

    Befehl: MaxLen

    Syntax: MaxLen Stringvar=Wert/Länge

    Modus: Amiga/Blitz


    Mit MaxLen wird die maximale Länge eines Strings für die Befehle FileRequest$ und Fields festgelegt.

    Beispiel:

      ;
      ;     Filerequester-Programmbeispiel
      ;
      WbToScreen 0                              ;benutze den WB-Screen als aktuellen Screen
      WBenchToFront_                            ;bringe den WB-Screen in den Vordergrund
      MaxLen pa$=160                            ;mit diesen Werten arbeitet der Filerequester
      MaxLen fi$=64                             ;ohne Probleme
                                                ;bringe einen Filerequester auf den Screen
      a$=FileRequest$("Wähle ein File",pa$,fi$)
    
      WBenchToBack_                             ;Workbench wieder in den Hintergrund bringen
    


    siehe auch: FileRequest$, Fields



    Index

    Befehl: DEFTYPE

    Syntax: DEFTYPE.Typname [Var[,Var,..]]

    Modus: Amiga/Blitz


    Legt den Variablentyp fest. Dies kann auf 2 Wegen geschehen:

    1. Festlegen eines Typs für bestimmte Variablen.

    Es müssen Var-Parameter folgen.

    
      DEFTYPE.l a,b  ;a und b werden als Langwortvariable behandelt.
    

    2. Eine Voreinstellung des Typs für folgende Variable festlegen. Es folgen keine Var-Parameter.

    
      DEFTYPE.w
      a=10           ;a wird als Wordvariable behandelt
    


    Beim Start ist "Quick" voreingestellt.

    siehe auch: NEWTYPE



    Index

    Befehl: NEWTYPE

    Syntax: NEWTYPE.Typename

    Modus: Amiga/Blitz


    Mit NEWTYPE kann ein neuer, selbstgewählter Variablentyp erstellt werden. Nach NEWTYPE muß eine Liste mit "Elementen-Namen" folgen. Die einzelnen Namen müssen durch Doppelpunkte ":" und/oder eine neue Zeile getrennt werden. Die "Newtypeliste" muß mit End NEWTYPE beendet werden.

    Beispiel:

      NEWTYPE.test
        a.l
        b.w
        c.q
      End NEWTYPE
    
      a.test\a=10,20,30
    
      NPrint a\a,a\b,a\c
    
      MouseWait
    


    siehe auch: DEFTYPE, USEPATH



    Index

    Befehl: End NEWTYPE

    Syntax: End NEWTYPE

    Modus: Amiga/Blitz


    siehe NEWTYPE.



    Index

    Befehl: SizeOf

    Syntax: SizeOf.Typename[,Eintrittspfad]

    Modus: Amiga/Blitz


    Mit SizeOf können Sie den benötigten Speicherbedarf eines Variablentyps in Byte ermitteln. Bei Angabe von Eintrittspfad gilt dies für NEWTYPE-Variablen.

    Beispiel:

      NEWTYPE.test          ;Festlegen eines Anwendervariablentyps
        a.l
        b.w
        c.q
      End NEWTYPE           ;Festlegungsende
      NPrint SizeOf.b       ;zeigt Größe eines Byte
      NPrint SizeOf.test    ;zeigt Größe unseres festg. Variablentyps
      NPrint SizeOf.test\b  ;zeigt Größe von `b' unseres festg. Typs
      MouseWait
    


    siehe auch: NEWTYPE



    Index

    Befehl: Dim

    Syntax: Dim Arrayname [List](Dimension [,Dim2..])

    Modus: Amiga/Blitz


    Mit Dim legen Sie ein normales Basicarray oder, wenn List angegeben wird, eine Liste fest. Dimension gibt die maximale Anzahl der Arrayelemente an. Bei Angabe von List ist nur eine Dimension möglich.

    Beispiel:

      Dim a(3,3)                          ;Ein Array initialisieren
    
      For k=1 To 3                        ;äußere Schleife
        For j=1 To 3                      ;innere Schleife
          a(k,j)=c                        ;Wert von 'c' ins Arrayelement
          c+1                             ;'c' erhöhen
        Next                              ;Ende innere Schleife
      Next                                ;Ende äußere Schleife
    
      For k=1 To 3                        ;Arrayelemente anzeigen
        For j=1 To 3
          NPrint "a(",k,",",j,")=",a(k,j)
        Next
      Next
    
      MouseWait
    




    Index

    Befehl: ResetList

    Syntax: ResetList Arrayname()

    Modus: Amiga/Blitz


    ResetList wird in Verbindung mit Listarrays benutzt, um das Listarray für eine NextItem-Ausführung vorzubereiten.

    Nach Ausführen von ResetList wird der Listenzeiger auf das erste Element des Arrays gesetzt.

    Beispiel:

      Dim List a(10)
    
      While AddFirst(a())
        a()=c
        c+1
      Wend
    
      NPrint "Werte von a() werden angezeigt..."
    
      ResetList a()
      While NextItem(a())
        NPrint a()
      Wend
      MouseWait
    


    siehe auch: NextItem



    Index

    Befehl: ClearList

    Syntax: ClearList Arrayname()

    Modus: Amiga/Blitz


    ClearList wird in Verbindung mit Listarrays benutzt, um ein ausgewähltes Listarray komplett zu "leeren". Listarrays werden automatisch geleert, wenn sie dimensioniert werden.

    siehe auch: Dim, ResetList



    Index

    Funktion: AddFirst

    Syntax: AddFirst (Arrayname())

    Modus: Amiga/Blitz


    Erlaubt das Hinzufügen eines Arrayteils an den Anfang der Arrayliste. Die AddFirst-Funktion überprüft, ob noch Platz vorhanden ist und meldet dies mit falsch (0) oder richtig (-1). Sollte ein Einfügen möglich sein, wird der aktuelle Listarrayzeiger auf dieses Element gesetzt.

    Beispiel:

      Dim List a(100)                            ;Ein Listarray initialisieren
    
      While AddFirst(a())                        ;Solange ein Wert verfügbar ist...
        a()=c                                    ;und füge diesen in die Liste ein
        c+1                                      ;erhöhe 'c'
      Wend
                                                 ;zeige, wieviele Werte in die Liste hinzugefügt
                                                 ;wurden.
      NPrint c," Werte erfolgreich hinzugefügt."
      MouseWait
    


    siehe auch: AddLast, AddItem, KillItem



    Index

    Funktion: AddLast

    Syntax: AddLast (Arrayname())

    Modus: Amiga/Blitz


    Erlaubt das Einfügen eines Arrayteiles an das Ende der Arrayliste.

    Sonst wie AddFirst.

    siehe auch: AddFirst, AddItem, KillItem



    Index

    Funktion: AddItem

    Syntax: AddItem (Arrayname())

    Modus: Amiga/Blitz


    Die AddItem-Funktion erlaubt das Einfügen eines Arrayteiles hinter das aktuelle Arrayteil. Der Listenzeiger wird auf dieses neue Element gesetzt.

    Sonst wie: AddFirst.

    Beispiel:

      Dim List a(10)
      If AddFirst(a()) Then a()=1
      If AddItem(a()) Then a()=2
      NPrint "Listarraywerte ab Anfang..."
      ResetList
      While NextItem(a())
        NPrint a()
      Wend
      MouseWait
    


    siehe auch: AddFirst, KillItem



    Index

    Funktion: KillItem

    Syntax: KillItem Arrayname()

    Modus: Amiga/Blitz


    Wird benutzt, um ein ausgewähltes Arrayteil zu löschen. Der Listenzeiger wird auf das Arrayteil vor dem gelöschten Arrayteil gesetzt.

    Beispiel:

      Dim List a(10)
      While AddItem(a())
        a()=c
        c+1
      Wend
    
      ResetList a()
      While NextItem(a())
        If a()/2<>Int(a())
          KillItem a()
        EndIf
      Wend
    
      NPrint "Fertige Liste..."
    
      ResetList a()
      While NextItem(a())
        NPrint a()
      Wend
    
      MouseWait
    


    siehe auch: AddFirst, AddLast, AddItem



    Index

    Funktion: PrevItem

    Syntax: PrevItem (Arrayname())

    Modus: Amiga/Blitz


    Setzt den Listenzeiger auf das Arrayteil vor dem zuvor ausgewählten Arrayteil. Somit sind "Rückwärts"-Abläufe in der Liste möglich.

    Beispiel:

      Dim List a(10)                    ;initialisiere ein Listarray
    
      While AddLast(a())                ;Liste  mit
        a()=c
        c+1                             ;1,2,3--- füllen
      Wend
    
      NPrint "Listenwerte rückwärts..."
    
      If LastItem(a())                  ;gehe zum letzten Teil der Liste
        Repeat                          ;wiederhole bis
          NPrint a()                    ;kein Rückwärtsschritt mehr möglich.
        Until a()
      EndIf
    
      MouseWait
    


    siehe auch: NextItem



    Index

    Funktion: NextItem

    Syntax: NextItem (Arrayname())

    Modus: Amiga/Blitz


    Setzt den Zeiger auf das Arrayteil nach dem zuvor ausgewählten Arrayteil. Somit ist eine Vorwärtsabarbeitung der Liste möglich. Steht kein Arrayteil mehr zur Verfügung, gibt NextItem falsch (0) aus, andernfalls richtig (-1).

    Beispiel:

      Dim List a(10)                                      ;Erstelle ein List-Array
      While AddLast(a))                                   ;Fülle das Array mit Elementen an
        a()=C
        c+1
      Wend
    
      NPrint "Der Inhalt des List-Arrays ist (vorwärts)"
    
      ResetList a()
      While NextItem(a))                                  ;Array-Elemente ausgeben
        NPrint a()
      Wend
    
      MouseWait
    


    siehe auch: PrevItem



    Index

    Funktion: FirstItem

    Syntax: FirstItem (Arrayname())

    Modus: Amiga/Blitz


    Setzt den Listenzeiger auf das erste Teilstück der Liste. Ist kein Teilstück vorhanden, wird falsch (0), andernfalls richtig (-1) ausgegeben.

    Beispiel:

      Dim List a(10)                                     ;Erstelle ein List-Array
      While AddLast(a))                                  ;Fülle das Array mit Elementen an
        a()=C
        c+1
      Wend
      If  FirstItem(a))                                  ;Falls es ein erstes List-Array-Teilstück gibt
        NPrint "Das erste Element in der Liste ist:",a() ;wird es ausgegeben
      EndIf
    
      MouseWait
    


    siehe auch: LastItem



    Index

    Funktion: LastItem

    Syntax: LastItem (Arrayname())

    Modus: Amiga/Blitz


    Die Ausführung von LastItem setzt den Listenzeiger auf das letzte Teilstück der Liste. Ist kein Teilstück vorhanden, wird falsch (0), andernfalls richtig (-1) zurückgegeben.

    siehe auch: FirstItem



    Index

    Befehl: PushItem

    Syntax: PushItem Arrayname()

    Modus: Amiga/Blitz


    Legt den aktuellen Listenzeiger in einen separaten Stapelbereich ab. Dieser Zeiger kann später mit PopItem wieder eingelesen werden. Der interne Stapelbereich erlaubt die Ablage von maximal 8 Zeigern.

    Beispiel:

      Dim List a(10)               ;Erstelle ein List-Array
      While AddLast(a))            ;Fülle das Array mit Elementen an
        a()=C
        c+1
      Wend
    
      ResetList a()
    
    
      While NextItem(a))           ;alle Teilstücke durchgehen
        If a()=5 Then PushItem a() ;speichern, wo die '5' gefunden wird
      Wend
    
      PopItem a()                  ;"5" wieder aufrufen
      KillItem a()                 ;und löschen
    
      ResetList a()
      While NextItem(a))           ;Array-Elemente ausgeben
        NPrint a()
      Wend
      MouseWait
    


    siehe auch: PopItem



    Index

    Befehl: PopItem

    Syntax: PopItem Arrayname()

    Modus: Amiga/Blitz


    Holt den mit PushItem abgelegten Listenzeiger vom Stapel. Der Arrayname muß identisch sein mit dem Arrayname des PushItem-Befehls.

    siehe auch: PushItem



    Index

    Befehl: ItemStackSize

    Syntax: ItemStackSize MaxItems

    Modus: Amiga/Blitz


    Mit ItemStackSize legen Sie die maximale Anzahl der Listenteilstücke auf dem Stapel fest.

    Beispiel: ItemStackSize 1000 erlaubt die Benutzung von 1000 Teilstücken bevor ein Überlauf der Liste eintritt.

    siehe auch: PushItem, PopItem



    Index

    Befehl: Sort

    Syntax: Sort Arrayname()

    Modus: Amiga/Blitz


    Sort sortiert das mit Arrayname festgelegte Array. Die Arraywerte werden in aufsteigender oder absteigender Reihenfolge sortiert. Voreingestellt ist aufsteigend. Die Einstellung können Sie mit SortUp oder SortDown ändern.

    Newtype- und Listarrays können nicht sortiert werden.

    Beispiel:

      Dim a(9)      ;erstelle ein Array 'a'
      For k=0 To 9  ;und fülle es mit Zufallswerten
        a(k)=Rnd
      Next
      Sort a()      ;sortiere das Array
      For k=0 To 9  ;und gib es aus
        NPrint a(k)
      Next
      MouseWait
    


    siehe auch: SortUp, SortDown



    Index

    Befehl: SortUp

    Syntax: SortUp

    Modus: Amiga/Blitz


    Legt die Sortierart des Sort-Befehls fest. Hier "von unten nach oben".

    siehe auch: Sort, SortDown



    Index

    Befehl: SortDown

    Syntax: SortDown

    Modus: Amiga/Blitz


    Legt die Sortierart des Sort-Befehls fest. Hier "von oben nach unten".

    siehe auch: Sort, SortUp






    Impressum
    Copyright © 2001-2007 by Cj-Stroker. Alle Rechte vorbehalten (Legal Info)
    AMIGA und zugehörige Logos sind eingetragene Warenzeichen von Amiga, Inc.