vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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

Visual-Basic Einsteiger
Datentyp Variant will nicht so, wie ich will 
Autor: Tauwasser
Datum: 05.09.05 15:10

Also ja. Das ganze ist für nen LZW-Kompressor (fragt jetzt echt nicht, warum ich einen schreibe obwohl es wahrscheinlich schon Abermillionen da draußen gibt.)
Jedenfalls habe ich clever wie ich bin, gemerkt, dass Long schon mal gar nicht ausreicht um in einem Array die Wörterbuch-Einträge zu speichern. Also habe ich variant genommen. Schön und gut, ABER jetzt will das ab irgendeiner Länge auch nicht mehr, oder besser: Ab irgendeiner Länge ( ich nehme mal an es sind 8 Byte), wird es in e+x -Form angezeigt. Und zusammen mit nem AND &HFF (weil ich ja bloß jeweils 1 byte vergleichen will mit dem Eingabestrom), gibt das nen Überlauf.

Ich habe schon alles mögliche probiert, aber immer wieder Überlauf. Mit Strings ging der ganze Müll, aber da kam es dann zu richtigen Performance-Problemen

Hier der Code, der in meinem array woerterbuch() nach gleichen daten aus dem array gifarray() ab stelle gifindex sucht: Die Sache mit dem RIGHT hatte mir erst geholfen, weil der schon ab dem 8. Byte nicht mehr ANDen wollte. Das mit dem testvrnt ist nen bemitleidenswerter Versuch gewesen, das ganze irgendwie zu retten (warum sollte man auch 2 variants nicht miteinander ANDen können?)

Public Function wbsuch(gifindex As Long) As Long
Dim laenge2 As Long
Dim testvrnt As Variant
wbsuch = -1
laenge = 0
For x = 2 To wb_index
laenge2 = Fix(Len(woerterbuch(x)))
If laenge2 And 1 <> 1 Then laenge2 = laenge2 + 1
laenge2 = laenge2 / 2
    If gifarray(gifindex) = Fix(woerterbuch(x) / (&H100 ^ (laenge2 - 1))) Then
        For y = laenge2 - 1 To 0 Step -1
            If (gifindex + y) > (112 * 112 - 1) Then Exit For
            testvrnt = Fix(woerterbuch(x) / (&H100 ^ y))
            If (h2d(Hex(Right("00000000" & testvrnt, 8))) And &HFF) <> _
              gifarray(gifindex + laenge2 - 1 - y) Then Exit For
        Next y
        If y = -1 Then
            If laenge2 > laenge Then wbsuch = x: laenge = laenge2
        End If
    End If
Next x
End Function
Hoffe dringlichst auf Hilfe, da ich 1. Das verdammte Programm, das dies nutzt zuende bringen will und 2. mich das aufregt, wenn ich was im Kopf machen kann, was der Computer nicht kann :X

Bin für jede Antwort dankbar.

cYa,

Tauwasser
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datentyp Variant will nicht so, wie ich will423Tauwasser05.09.05 15:10
Re: Datentyp Variant will nicht so, wie ich will234Radeonmaster06.09.05 11:01
Re: Datentyp Variant will nicht so, wie ich will232Tauwasser06.09.05 13:36

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