vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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

Fortgeschrittene Programmierung
Vererbung - kein VB.Net 
Autor: DEAthWiNg
Datum: 23.03.04 18:32

Hi,

erstmal im Voraus: ich komme von Delphi, deshalb packe ich das Problem so an wie ich es von dort gewohnt bin. Vielleicht muß man das bei VB anders angehen.

Ich muß ein Programm für die Auswertung einer ziemlich umfangreichen Excel Tabelle schreiben (also VB nicht VB.Net).

Folgendes Problem ich habe eine Klasse (Search) die verschiedene Daten aus der Tabelle suchen soll.

Option Explicit


Public Function BinarySearch(List As Object, Left As Long, Right As Long, Compare As Compare) As Long
Dim Middle As Long

Middle = (Left + Right) \ 2

If Right >= Left Then
Select Case Compare.Compare(List, Middle)
Case Is = -1
BinarySearch = BinarySearch(List, Left, Middle - 1, Compare)
Case Is = 0
BinarySearch = Middle
Case Is = 1
BinarySearch = BinarySearch(List, Middle + 1, Right, Compare)
End Select
Else
'nicht gefunden
End If
End Function


Und eine Klasse (Compare) die die Vergleichsoperation durchführt.


Option Explicit


Public Match As Long

Public Function Compare(List As Variant, Index As Long)
Debug.Print List(Index)

Select Case List(Index)
Case Is > Match
Compare = -1
Case Is = Match
Compare = 0
Case Is < Match
Compare = 1
End Select
End Function


Das ist notwendig da nicht nur die Datentypen unterschiedlich sein können, sondern auch die Items von List (ein Objekt z.B. Collection oder Range) unterschiedlich angesprochen werden können.

In Delphi hätte ich nun einfach eine Klasse für Compare geschrieben die die Funktion Compare virtuell (d.h. Nur den Rumpf ohne eigentliche Funktion) exportiert.
Diese Klasse hätte ich dann einfach vererbt.

Wie mache ich so etwas in VB?


Alternativ (hätte aber doch lieber Objekte) könnte ich die Compare Funktion auch per Pointer an Search übergeben. Aber ich glaube es gibt in VB keine Prozedualenpointer oder?

Danke schon mal im voraus für eure Hilfe.

DW
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Vererbung - kein VB.Net692DEAthWiNg23.03.04 18:32

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