Len returns LONG:6 |
- String string1 = 0013AC94 |
|
= "Trevil" |
|
1.
Programmet sjekker lengden på navnet mitt her, returnerer
6 som er antall char's i Trevil. Siden du ser to så
kan du regne med att første gangen bare er en test
av lengden. |
Len returns LONG:6 |
- String string1 = 0013AC94 |
|
= "Trevil" |
|
2.
Her sjekker enda en gang programmet lengden av nicket
mitt, denne gangen for å sette opp en liten loop
(les. for/next) som vil kalkulere ett serial ettersom
den tar bokstav for bokstav og regner litt. |
Mid |
- string(variant) |
|
struct IDisplatch{}* .pdispVal = 0180EBC |
- Long length = 1 0x00000001 |
- start(variant) |
|
Integer .iVal = 1 0x0001 |
|
3.
Her kjøres det en funksjon som heter Mid. Den brukes
når programmet vil plukke ett og ett eller flere
bokstaver ut av en string. Til noen sier noe anna så
kan du f.eks. se for deg att struct er Trevil og att lengden
den skal lese er 1 og den skal starte lese på 1,
resultatet blir da T. Hvis/når start verdien blir
.iVal = 2 så blir resultatet r. etc. |
Asc returns Integer:84 |
- String string = 0013B5A4 |
|
= "T" |
|
4.
Det her er interesant, nesten alle vb programmer bruker
denne funksjonen i serial rutinene. Det er egentelig bare
for å få ett tall å jobbe med, så
den gjør om T til 84, 84 er Ascii verdien for bokstaven
T. |
__vbaVarMove returns DWORD:12F634 |
- pSource(variant) |
|
signet short .iVal = 84 0x0054 |
- pDest(variant) |
|
unsigned short .vt = 0 0x0000 |
|
0.
Vi flytter litt variabler. Sånn VarMove vil du se
en del av når verdier bytter plass og blir lagt
i forskjellige variabler. |
SysFreeString |
- unsigned short * bstr = 0013B54A4 |
|
= "T" |
|
1.
Vi kaster T, vi trenger ikke den lengre, vi vil bruke
84 isteden fra nå av. |
__vbaVarMul returns DWORD:12F60C |
- lhs(variant) |
|
signed short .iVal = 84 0x0054 |
- rhs(variant) |
|
signed short iVal = 7 0x0007 |
|
2.
Her blir 84 * 7. Resultatet er 588. |
__vbaVarMul returns DWORD:12F5FC |
- lhs(variant) |
|
signed short .iVal = 588 0x024C |
- rhs(variant) |
|
signed short iVal = 4 0x0004 |
|
3.
Her kjenner vi igjen resultatet over som var 588, her
blir det igjen ganget med 4 som er 2352. |
__vbaVarMul returns DWORD:12F5EC |
- lhs(variant) |
|
signed short .iVal = 2352 0x0930 |
- rhs(variant) |
|
signed short iVal = 22 0x0016 |
|
4.
For å være på den sikre siden så
har han farken deise meg ganga resultatet over med 22,
så det blir 2352 * 22, svaret her er 51744. |
__vbaVarSub returns DWORD:12F5DC |
- unsigned long pVar = 122604 0x0012F5EC |
- unsigned long lpSrc = 1242492 0x0012F57C |
- unsigned long argc = 9216 0x00002400 |
|
5.
Her har vi en substraksjon, på norsk minus sak,
jeg har ikke helt skjønt hva som skjer her, men
vi kan av resultatet under se att den har tatt 51744 og
trekt fra 291 og det har resultert i 51453. |
__vbaVarAdd returns DWORD:12F5CC |
- lhs(variant) |
|
signed long .lVal = 51453 0x0000C8FD |
- rhs(variant) |
|
signed short .iVal = 456 0x01C8 |
|
6.
Den her er grei, Add betyr legge til og det er det den
gjør, legger 456 til 51453, resultatet bør
være 51909 (se på linja under.) |
__vbaVarAdd returns DWORD:12F5BC |
- lhs(variant) |
|
signed short .lVal = 0 0x0000 |
- rhs(variant) |
|
signed long .lVal = 51909 0x0000CAC5 |
|
7.
Her har vi en Add til. Den tar 0 og legger til resultatet
av utregningene til T som var 84, som igjen ble blablabla
etc.. ikke sant?
|
__vbaVarMove returns DWORD:12F624 |
- pSource(variant) |
|
signed long .lVal = 51909 0x0000CAC5 |
- pDest(variant) |
|
unsigned short .vt = 0x0000 |
|
8.
Så flytter den resultatet av utregningene så
langt til en midlertidlig lagringsplass. Neste gang så
blir det resultatet av Add funksjonen over som blir lagret,
men da er det lakt sammen av resultatet for T og r osv... |
__vbaVarForNext returns DWORD:1 |
- counter(variant) |
|
signed long .lVal = 1 0x00000001 |
- void * data1 = 0012F550 |
- void * data2 = 0012F540 |
|
9.
Den er ferdig med T og vil gå videre, hvis return
verdien her er DWORD:0 vil den hoppe ut av loopen og ikke
fortsette, det skjer når den har tatt siste bokstaven,
eks. l i dette tilfellet. |
__vbaObjSet returns LPVOID:1880EBC |
- struct IDispatch{} ** pObject =
0012F61C |
|
struct IDispatch {} ' = NULL |
- struct IDispatch{} ' pDispatch =
01880EBC |
|
struct IDispatchVtbl{} ' .lpvtbl = 01874A8 |
|
A.
Object id'n som er 1880EBC burde du kjenne igjen, har
ikke noen spesiell betydning anna en att den refererer
til stringen med navnet ditt i. |
__vba4Val returns DWORD:2 |
- pVar(variant) |
|
signed long .lVal = 2 0x00000007 |
|
B.
Sjekker hvor i stringen den skal starte og lese neste
bokstav fra, f.eks. som er begynner den på 2 som
er r og som er neste bokstav i eventyret vårt.
|
Asc returns Integer:114 |
- String string = 0013B5A4 |
|
= "r" |
|
C.
Som jeg sa over.. her går det unna... |
__vbaVarMul returns DWORD:12F60C |
- lhs(variant) |
|
signed short .iVal = 114 0x0072 |
- rhs(variant) |
|
signed short iVal = 7 0x0007 |
|
D.
r er 114 i asc og blir ganga med 7 her, den kjører
samma gange, adde og minus funksjoner på hver, det
ser du også utifra att alt er likt i smartcheck
som på forrige bokstav. Det langt fra alltid att
alle bokstaver blir 'behandla' linkt. |
__vbaVarAdd returns DWORD:12FBC |
- lhs(variant) |
|
signed long .lVal = 51909 0x0000CAC5 |
- rhs(variant) |
|
signed long .lVal = 70389 0x000112F5 |
|
E.
Her har vi kommet så langt att vi legger resultatet
av r til resultatet av T. |
__vbaForNext returns DWORD:1 |
- counter(variant) |
|
signed long .lVal = 2 0x00000002 |
- void * data1 = 0012F550 |
- void * data2 = 0012F540 |
|
F.
Så.. her sjekker vi om vi skal ta ei runde til,
og det gjør den ser du.. 2 tallet indikerer verdien
på For Next variablen i det den er på bunn
av løkka. Så her er verdien 2 for r er bokstav
nummer to. |
Jeg har en annen liten literaturbit som jeg har kun forklaringer
på funksjoner. Neste vb tutorials vil ikke ha bilder
tror jeg, hvertfall ikke så mange som her, så
jeg regner med att etter å ha lest denne så behøver
du ikke ha noen bilder.. da kan du bruke ren telepati.