Toon posts:

[VBA] Word naar bytes?

Pagina: 1
Acties:
  • 364 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
In een programma dat ik met VBA moet scripten krijg ik een dalijk een variable binnen, die uit het programma komt als een WORD. Oftewel 2 bytes. Nu moet ik de bitjes in die bytes individueel kunnen uitlezen.

In de eerste plaats kent VBA volgens mij geen WORDs dus zal het wel opgevat worden als een integer? Dan moet ik uit die integer idividuele bitjes halen, maar ik heb in VBA geen flauw idee hoe?

Het zoeken op VBA en word geeft natuurlijk snel de indruk dat je opzoek bent naar office toepassingen.

Iemand ooit zoiets gedaan?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

een 16 bits variabele heet in vba inderdaad een integer. :)
Individuele bits lees je uit met een 'AND' operator:
If (var AND 8 ) [=8] then '.... derde low-bit gezet

offtopic:
en VBA is deel van office, dus dit mag in Officesuites en -software

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:02

Creepy

Tactical Espionage Splatterer

Move naar Officesuites en -software dussch :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Heeft overigens nix met office te maken ;)

  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 02-06 20:28

CoRrRan

Don't Panic!!!

Ik geloof dat de mods de 'woorden' "VBA" en "WORD" in dezelfde post gelijk vinden aan Office. :)

Ze hebben zeker nog nooit gehoord van programma's als CATIA v5 die ook gewoon VBA gebruiken... ;)

[ Voor 6% gewijzigd door CoRrRan op 09-05-2007 16:17 ]

-- == Alta Alatis Patent == --


Verwijderd

Topicstarter
Bijna elk Industriëel Software pakket gebruikt VBA voor scripting. En een word is een verzameling van 8 bits, maarja lezen he ;).

Maar Lustucru je hebt gelijk, dat is de way to go, thanks.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

offtopic:
Doe even normaal jullie twee :(

De meest bekende en gebruikte VBA hosts zijn de applicaties in het office-pakket, en dus is er voor gekozen om VBA topics in het office-forum onder te brengen. Verder is het onderscheid tussen msWord en een 'Word' welbekend en worden 8 bits op een rijtje normaliter een byte genoemd.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • SKiLLa
  • Registratie: Februari 2002
  • Niet online

SKiLLa

Byte or nibble a bit ?

Je krijgt dan dus iets als:


code:
1
2
3
Function IsBitSet (ByVal intValue, ByVal intBit)
    IsBitSet = (intValue And 2^intBit) = 2^intBit
End Function


Retourneert True/False voor het betreffende bit.
Let op, bitnummering loopt van [0, ->], b.v.: IsBitSet (128, 7) levert True op
Wil je gewoon 0 of 1 geretourneert krijgen, dan gebruik je:

code:
1
IsBitSet = Abs ((intValue And 2^intBit) = 2^intBit)

'Political Correctness is fascism pretending to be good manners.' - George Carlin


Verwijderd

Topicstarter
Heb het opgelost met de "\" ofwel "div" en "mod" operators / functies!
Pagina: 1