fb:porticula NoPaste
Beispiel dynamisches Array
Uploader: | Sebastian |
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