vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Meine erste Klasse ... 
Autor: Hannes H.
Datum: 01.06.05 15:36

Hallo allerseits

Durch einen OP Eingriff meiner Hand konnt ich die pdf´s wieder in Ruhe durchlesen.
Inzwischen sind mir die Begriffe Klasse,Function,Delegate (Fast) und Co. schon sehr vertraut.
Meine erste Klasse habe ich mal erstellt und es kappt wohl alles:

Zur Info:
Der zustand meines Hauses wird in Varablen gespeichert.
Mein erster gedanke war:
Dim g1/0/0 as Integer = 1
Dim g1/0/1 as Integer = 0
...
Dim g7/15/15 as integer = 0

habe ich schnell fallen gelassen. Müßte 2000 - 6000 Dim Befehle tippen

Da ich nun endlich mehr von den Klassen verstehe habe ich dies nun so realisiert:
Füllen einer Array-Klasse über eine Datenbank (kommt noch. Nicht so schwer)
Zugriffe auf die "Variablen" über die Klasse.
Das sieht so aus:
Public Class Form1
    Inherits System.Windows.Forms.Form
        Public eib As New eib
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        eib.lesen()
    End Sub
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        MessageBox.Show(eib.gaget(txtsuch.Text))
 
    End Sub
 
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button2.Click
        eib.gawrite(txtsuch.Text, txtwert.Text)
 
    End Sub
 
    Private Sub txtset_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles txtset.Click
        eib.gaset(txtsuch.Text, txtwert.Text)
    End Sub
End Class
Public Class eib
    Public GA(2000) As String
    Public Wert(2000) As String
    Public Typ(2000) As String
    Public Info(2000) As String
    Public Time(2000) As Date
    Function lesen()
        Dim i As Integer
        For i = 0 To 2000
            GA(i) = "Gruppe" & i.ToString
            Info(i) = "Info" & i.ToString
            Wert(i) = i.ToString
            Typ(i) = "Typ:" & i.ToString
            Time(i) = Date.Now
        Next
    End Function
    Function gaget(ByVal such As String) As String
        Dim i As Integer
        For i = 0 To GA.GetUpperBound(0)
            If GA(i) = such Then
                Return Wert(i)
            End If
        Next
    End Function
    Function gawrite(ByVal such As String, ByVal wert As String)
        Dim i As Integer
        For i = 0 To GA.GetUpperBound(0)
            If GA(i) = such Then
                MessageBox.Show("Unter der Gruppadresse " & such & " wird der" & _
                  "Wert " & Me.Wert(i) & " auf den Bus gesendet")
            End If
        Next
    End Function
    Function gaset(ByVal such As String, ByVal wert As String)
        Dim i As Integer
        For i = 0 To GA.GetUpperBound(0)
            If GA(i) = such Then
                Me.Wert(i) = wert
            End If
        Next
    End Function
End Class
Das ganze wird zum Testen über eine Schleife gefüllt (2000 Zustände)
Will man den Zustand von Gruppe345 wissen:
i = eib.gaget("Gruppe345")
In der Function gaget wird der String übertragen und im array nach der Gruppe gesucht. Wenn gefunden, Rückgabe des wertes.

Klappt auch so.


Aber ich habe ein paar Fragen:
Der Grund, das alle als String dimensioniert sind, ist der, das jede Gruppe unterschiedliche Formate hat (Integer, Short,...) und leider auch Texte.
Da ich nicht Array(345) als Integer und Array(346) als String Dim. kann, habe ich generell String genommen.
Aber nun muss ich, wenn etwas berechnet wird, immer zuerst prüfen ob es ein text, oder eine Zahl ist.

Kann man das irgendwie umgehen? Texte in den 2000 - 6000 großen Array, sind zwar sehr rahr, aber dennoch vorhanden.
Würde ich als Double eine Wert dim, und es wird dann aus der DB ein Text eingelesen, gibts Probleme.

Ich weiß auch, das ich über Overload mehrere gleiche Functionen erstellen kann.
Es wird dann automatisch der Richtige genommen, der für den Aufruf paßt.
Aber ist dies wirklich so einfach,bzw. Ich muss ja erstmal alles Dim.

Oder soll ich die DB so einlesen, das zuerst alle Integer, dann alle Short und dann alle texte eingelesen wird?
Über Typ() sind die Werte als Klartext (Integer,Short,String) gezeichnet. So könnt ich jeden Wert den genauen Typ zuweisen.

Kann jemand etwas Hilfe anbieten.

Auch habe ich über Eigenschaft und Parameter gelessen. jedoch habe ich noch kein genaues Bild davon, wie ich dies einsetzen könnte.

Oder bleibt mir nichts erspart, als für jeden Typ das ganze zu tippen?

Vielen Dank

Hannes
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Meine erste Klasse ...743Hannes H.01.06.05 15:36
Re: Meine erste Klasse ...461Hannes H.01.06.05 15:42

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel