Überlauf bei Rechnungen mit Mod

KingOfParachutez
Moin Leutz

Habe da ein Problem mit VisualBasic6. Wenn ich
Zitat:

Private Sub Command1_Click()
Dim a As Byte
a = TextBox1.Text Mod 256
MsgBox (a)
End Sub


rechnen will (habe den src etwas vereinfacht) bekomme ich einen Überlauf. Für Dim a As Integer/Double/Byte etc.. bekomme ich immer eine Fehlermeldung. Egal ob ich TextBox1.Text oder TextBox1 schreibe... Sobald Text1.Text größer als 2147483647 ist gibt es einen Überlauf (höchster zu berechnender Wert soll 4294967295 sein). Die Ergebnisse der Berechnungen sollen im Bereich 1-255 liegen.

Wenn mir dabei irgendwer helfen kann, ich verzweifel hier schon fast dran...
ThiefMaster
Statt MsgBox (a) muss es Call MsgBox (a) oder MsgBox a heißen
Und nimm Single, Double oder Long...
KingOfParachutez
Habe das Problem selbst gelöst.
War ein sehr simpler Fehler. Und zwar kann ich Long nicht mit Integer Werten verrechnen, weswegen ich die 256 auch mit # als Long definieren muss:

Zitat:

Private Sub Command1_Click()
a = TextBox1 Mod 256#
MsgBox (a)
End Sub


Zunge raus war wirklich simpel, aber selbst erfahrene Coder die ich gefragt habe hatten keine Lösung... Augen rollen
ThiefMaster
Da haben sich dann aber die M$ Coder nichts bei gedacht
YinQ
Öhm, ich weiß diese antwort komm etwas spät aber ich ahb nichts besserres zu tuhen, und das ich was "weiß" ist der beweiß für mich selbst....

Zitat:
Und zwar kann ich Long nicht mit Integer Werten verrechnen,

Türlich kannst du das, das geht mit allen zahlewerten:
long+integer+byte+short+double+undundund

Nur, dein problem war das byte nur zahlen von 0 bis 256 "speichern" (oder wie man das nenen mag) halten kann
also kann sich so eine große zahl mal garnich ausgehen
integer gehen sich 2³² ziffern aus (gerade noch genug)
und long mit 2 hoch 64 ziffern (was eigentlich ausreichen sollte)

Ich denk nicht das dieser beitrag relativ hilfreich war aber für die die es nciht wissen, wissen es jetzt ^^