Statements med # foran, etc. etc. (fx #End If)

Tags:    visual-basic

Hej. Jeg fandt en lille simpel krypterings algoritme, og jeg spekulerede på hvad disse ting betyder.

Hvad er forskellen på disse to If statements?

Fold kodeboks ind/udKode 
.


Og hvad betyder $ i en funktion?
f. eks. hvad er forskellen på disse to Mids?

Fold kodeboks ind/udKode 


Fandt også UCase med $ efter
Fold kodeboks ind/udKode 



Og denne linje betyder?
Fold kodeboks ind/udKode 


Og hvad er Mod? Stod i denne linje!
Fold kodeboks ind/udKode 


Og sidst... Funktionen Asc er den bare til at lave et tegn om til Ascii?


Jeg lyder måske som en n00b, men det er jeg altså ikke... :S


På forhånd tak!



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hej Morten.

Jeg har ikke set #if sætningen tidligere, så jeg ved ikke hvad forskellen er.

$
Med hensyn til Mid, UCase og flere streng funktioner, gælder det at man har bevaret de gamle Basic navne, som havde et $ til sidst.
I gamle dage brugte med $ på sine variabler for at bestemme dem som string typen, og naturligt nok havde funktioner som returnerer strenge tilbage samme tegn til sidst.

Idag er det blot med fordi det har været en del af Basic engang (og sikkert stadig er det hvis man vil).

Chr$
Chr laver et tegn, som svarer til den værdi man giver den, i Ascii tabellen. Det omvendte af Asc funktionen.
c AND &HFF
c er en variabel med en talværdi går jeg ud fra.
&H betyder at der følger en værdi i Hex.
FF i Hex, er 255.
AND kan betyde logisk "og", eller bit-operationen AND.
Her betyder det bit operationen AND, og det der sker ved at AND'e med 255, er at man sikrer sig at man kun får den del af tallet som AND'es, som er inden for 255 i værdi.
Chr$(c AND &HFF) betyder altså, giv mig et tegn af c's værdi, men kun den del af c som er mellem 0 og 255.

Mod
Mod er kort for Modulus.
Modulus er gerne regne symbolet % i andre sprog (c-agtige).
Modulus er rest værdien af en heltals division.
5 / 2 giver 2.5
Heltals divisionen 5 / 2 giver 2. Der er så en rest på 1.
5 Mod 2, giver 1.
4 Mod 2, giver 0.
En Modulus kan maksimalt giver deleren (højre side af udtrykket) minus en.

Det var hvad jeg lige kunne komme med :)



Tak for svaret. Det hjalp da en hel del på forståelsen.

If statementen med # har jeg faktisk set før, så det undrer mig hvad forskellen er.

Her er fx en kode med # i. Koden gør vinduet man indlæser en fra til: "Altid Øverst".

Skal i et modul:
Fold kodeboks ind/udKode 



Og dette i formens Load-procedure
Fold kodeboks ind/udKode 



Jeg nøjes lige med at give dig 2/3 af pointene, for jeg vil lige se om der er nogen der skulle ligge inde med et svar på #-spørgsmålet! Ellers så får du det hele!

Du får dem hvis der ikke kommer svar inden længe! :D



Indlæg senest redigeret d. 08.07.2006 13:06 af Bruger #1927
Nåh! Der ser ikke ud til at komme nogen andre svar!

Så værsgo! 75 points til dig! :D



Ahh ... dit eksempel satte gang i de små grå.
Jeg anede ikke VB støttede det, men det er pre-compiler direktiver ... det ser ihvertfald sådan ud, og minder meget om de tilsvarende i c/c++.

At de er pre-compiler direktiver, betyder at de afvikles inden selve compileringen.

Nyttigt til netop den slags du viste her, nemlig hvis vi compiler til win32 skal vi interface winapi på en bestemt måde, eller på en anden (16 bit) måde.

Tydeligvis et eksempel fra pre win64bit perioden :D

Så kan du godt hoste op med de sidste points :)



Damn, for længe om at svare :D



Damn, for længe om at svare :D


Hehe! Ja... Jeg er ekstrem hurtig! :P
Men tak alligevel! :D



t