| |

Visual-Basic EinsteigerDatentyp 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 |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP! Unser Nr. 1 
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
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
|
|