Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Beispiel dynamisches Array

Uploader:AdministratorSebastian
Datum/Zeit:14.03.2009 16:32:46

'Einfaches Beispiel zur speicherökonomischen Nutzung eines
'dynamischen Arrays mit Erweiterungs- und Löschfunktion

Declare Sub Loeschen (ByVal U As String)
Declare Sub Anlegen (ByVal U As String, ByVal A As UByte)

Type tTest
    UserName As String
    Alter As UByte
    Belegt As UByte=0
End Type

ReDim Shared Nutzer(0) As tTest

Dim UserName As String, Alter As UByte
Dim As Integer i, n, eingabe

Do
    Cls
    Print "Nutzerverwaltung"
    Print "(1) Hinzufuegen"
    Print "(2) Loeschen"
    Print "(3) Anzeigen"
    Print "(4) Beenden"
    Input "Eingabe: ", eingabe
    Cls
    Select Case eingabe
    Case 1
        Input "Geben Sie einen Benutzernamen ein: ", UserName
        Input "Geben Sie das Alter des Nutzers ein: ", Alter
        Anlegen UserName, Alter
        Print "Nutzer angelegt. Taste druecken."
    Case 2
        Input "Welchen Benutzer loeschen (Nutzernamen eingeben): ", UserName
        Loeschen UserName
        Print "Taste druecken."
    Case 3
        PRINT "Benutzername     Alter"
        PRINT "-----------------------"
        n = 0
        For i = 0 To UBOUND(Nutzer)
            If Nutzer(i).Belegt = 1 Then
                PRINT USING "\             \  ###"; Nutzer(i).UserName, Nutzer(i).Alter
                n += 1
            End If
        Next i
        Print "-----------------------"
        Print n & " Nutzer gefunden. Das Array hat im Moment uebrigens " & (UBOUND(Nutzer)+1) & " Elemente."
        Print "Beliebige Taste druecken."
    Case 4
        End
    Case Else
        Beep: Continue Do
    End Select
    Sleep
    Do: Loop While Inkey <> ""
Loop




Sub Anlegen (ByVal U As String, ByVal A As UByte)
    Dim As Integer fund, n, i
    fund = -1
    For i = 0 To UBOUND(Nutzer)
        If Nutzer(i).Belegt = 0 Then
            fund = i
            Exit For
        End If
    Next i
    If fund < 0 Then
        n = UBOUND(Nutzer)+1
        ReDim Preserve Nutzer(n)
        fund = n
    End If
    With Nutzer(fund)
        .UserName = U
        .Alter = A
        .Belegt = 1
    End With
End Sub

Sub Loeschen (ByVal U As String)
    Dim As Integer i, fund=0
    For i = 0 To UBOUND(Nutzer)
        If UCASE(Nutzer(i).UserName) = UCASE(U) Then
            With Nutzer(i)
                .Username = ""
                .Alter = 0
                .Belegt = 0
            End With
            fund = 1
            Exit For
        End If
    Next i
    If fund = 0 Then
        Print "Fehler: Benutzer nicht gefunden."
    Else
        Print "OK, Nutzer geloescht."
    End If
End Sub