Skriptspråk for VBScript-nettsider. Sammenlignende analyse av JavaScript og VBScript

Datatyper

VBScript bruker en enkelt datatype, Variant, som lar deg lagre et tall, streng, dato, boolsk verdi, objektreferanse og annen informasjon i en variabel. Du kan bestemme innholdstypen til en variabel ved å bruke et sett med funksjoner: VarType, TypeName, IsArray, IsDate, IsEmpty, IsNull, IsNumeric, IsObject, som vil bli diskutert nedenfor. Typen informasjon den inneholder kalles også en variant undertype. En fullstendig liste over undertyper er vist i følgende tabell:

Undertype Beskrivelse
Tømme Variabelen har ikke blitt tildelt en verdi. Når du bruker en uinitialisert variabel i numeriske uttrykk, vil 0 bli erstattet, og i strenger - en tom streng.
Null Variabelen inneholder ingen data.
boolsk Boolsk kan være sant eller usant.
Byte Et heltall i området 0 til 255.
Heltall Et heltall i området -32 768 til 32 767.
Valuta Et fastpunktnummer i området -922 337 203 685 477.5808 til 922 337 203 685 477.5807.
Lang Et heltall i området -2 147 483 648 til 2 147 483 647.
Enkelt Enkelt presisjons flyttallnummer. For negative verdier er det gyldige området

fra -3.402823E38 til -1.401298E-45. For positiv - fra 1.401298E-45 til 3.402823E38.

Dobbelt Dobbelt presisjons flyttallnummer. For negative verdier er det akseptable området

79769313486232E308 til -4,94065645841247E-324. For positiv - fra 4.94065645841247E-324 til 1.79769313486232E308.

Dato tid) Inneholder et tall som representerer en dato i området 1. januar 100 til 31. desember 9999.
String En sekvens av tegn. Maksimal lengde er i området 2 milliarder tegn.
Gjenstand En gjenstand.
Feil Feilnummer.

Avhengig av uttrykket som variabelen deltar i, vil innholdet automatisk bli castet til ønsket type. Tenk på dette eksemplet:

Alternativ Eksplisitt Sub TestVBScript Dim A, B A = 5 B = "12" Application.MessageBox A + B, "", vbOkOnly End Sub

Siden en numerisk variabel er involvert i uttrykket EN, konverterer tolken verdien av variabelen B fra streng "12" inn i tallet og summer dem:

La oss endre makroen slik at variabelen EN inneholdt også linjen:

Alternativ Explicit Sub TestVBScript Dim A, B A = "5" B = "12" Application.MessageBox A + B, "", vbOkOnly End Sub

La oss kjøre den for utførelse. Nå vil skjermen vise resultatet av sammenslåingen (sammenslåingen) av to strenger, og ikke summen av deres numeriske representasjoner:

For å unngå forvirring med automatisk typekonvertering, anbefales det å bruke konverteringsfunksjoner: CBool, CByte, CCur, CDate, CDbl, CInt, CLng, CSng, CStr.

Hvis resultatet av et uttrykk er nøyaktig sammenkoblingen av strenger, og ikke summen av deres numeriske representasjoner, bør &-operatoren brukes i stedet for +.

Variabler

En variabel er en hendig symbolsk representasjon av et minneområde der en applikasjon lagrer noen data. Under kjøringen av applikasjonen kan verdien av variabelen endres. Variabelen må deklareres med Dim-setningen før bruk.

Ved å bruke én operator kan du deklarere flere variabler samtidig hvis du viser navnene deres atskilt med kommaer:

Dim venstre, høyre, topp, bunn

Ved deklarering er det ikke nødvendig å spesifisere datatypen, siden alle variabler er av typen Variant.

Hvis Option Explicit ikke er spesifisert i den første linjen i skriptteksten, kan variabler brukes uten erklæring. Men denne banen kan føre til feil som er vanskelig å oppdage. Det er nok å gjøre en feil en gang i stavemåten av variabelnavnet i programteksten for å få et uforutsigbart resultat. Vi anbefaler at du alltid spesifiserer Option Explicit og deklarerer variabler.

Variabelnavnet må oppfylle følgende krav:

  1. Start med et tegn i det latinske alfabetet;
  2. Består bare av tegnene i det latinske alfabetet eller av tegnene i det latinske alfabetet og tall;
  3. Ikke overskrid 255 tegn.
  4. Vær unik innenfor ditt omfang.

Omfang og levetid

Omfanget til en variabel bestemmes av hvor den ble deklarert. Hvis den er inne i en prosedyre, kalles en slik variabel lokal og er kun tilgjengelig innenfor denne prosedyren. Hvis en variabel er deklarert i skriptteksten, vil den være synlig for alle prosedyrer eller funksjoner som er definert i dette skriptet. Lokale variabler kan ha samme navn hvis de er deklarert i forskjellige prosedyrer.

I Explorer-treet i Script Objects Editor-vinduet er det en spesiell seksjon - konstanter og variabler - for å erklære globale variabler synlige for alle skriptfunksjoner i prosjektet.

Tolkeren tildeler minne for lokale variabler på det tidspunktet de er deklarert og frigjør det når de avslutter prosedyren. Globale variabler eksisterer fra det øyeblikket de er deklarert og til skriptet fullfører utførelse. I forhold til Gedymin betyr dette at globale variabler eksisterer gjennom hele programmets utførelsestid.

Tilordne en verdi til en variabel

Verdien til en deklarert variabel tildeles ved å bruke =-operatoren. Variabelnavnet vises til venstre for operatøren, den nye verdien vises til høyre. For eksempel:

A = 200 B = "Navn"

Skalare variabler og matriser

En variabel som inneholder en enkelt verdi kalles skalar. Noen ganger blir det nødvendig å lagre flere verdier i en variabel. I dette tilfellet bør du deklarere en matrise. Deklarasjonssyntaksen er identisk med den skalarvariabeldeklarasjonen, bortsett fra at etter navnet i parentes spesifiserer vi dimensjonen til matrisen. Følgende erklæring vil lage en matrise med 12 elementer:

Dunkle måneder (11)

I VBScript er den venstre grensen til matriseindeksen alltid 0. Dermed beregnes størrelsen på matrisen som tallet i parentes pluss én. Når du tilordner en verdi til et matriseelement, må du spesifisere indeksen i parentes:

Måneder (0) = "Januar" Måneder (1) = "Februar" Måneder (2) = "Mars" ... Måneder (10) = "November" Måneder (11) = "Desember"

På samme måte, når vi refererer til verdien av et element, bruker vi dets indeks:

Månedsnavn = måneder (5)

Matrisen trenger ikke å være endimensjonal. VBScript lar oss spesifisere opptil 60 dimensjoner når vi deklarerer en matrise. For eksempel vil følgende setning lage en todimensjonal matrise med 12 rader og to kolonner:

Dunkle månedsdager (11, 1)

Når du får tilgang til elementene i en flerdimensjonal matrise, må alle indekser spesifiseres:

Månedsdager (0, 0) = "Januar" Månedsdager (0, 1) = 31 Månedsdager (1, 0) = "Februar" Månedsdager (1, 1) = 28 ...

Ovenfor erklærte vi arrays, hvis størrelse ikke endres mens programmet kjører. Hvis du ikke vet på forhånd hvor mange elementer som trengs, kan du deklarere en dynamisk matrise:

Før bruk bør du angi størrelsen på den dynamiske matrisen ved å bruke ReDim-operatoren:

ReDim A (25)

Under utførelse kan du kalle ReDim-setningen flere ganger, hver gang du endrer størrelsen på matrisen. Bevar-alternativet bevarer verdiene til matriseelementene når størrelsen endres. For eksempel vil følgende kode øke arrayen ovenfor med fem elementer, og la de eksisterende være intakte:

ReDim Preserve A (30)

Husk at når du reduserer størrelsen på matrisen, vil verdiene til de slettede elementene gå uopprettelig tapt. Ved å bruke Erase-setningen kan du slette elementene i en fast matrise eller frigjøre minnet som er okkupert av en dynamisk matrise.

Dim A ReDim A (25) ... Slett A

Konstanter

Det er en god praksis å deklarere konstanter for verdier som brukes på nytt i teksten til programmet. Et godt tildelt konstant navn forbedrer lesbarheten, og selve bruken av det forenkler prosessen med å gjøre endringer i koden. I motsetning til variabler kan ikke verdien til en konstant endres under programkjøring. Konstanter opprettes ved å bruke Const-operatoren:

Const CountryName = "Hviterussland" Const CountryCode = 375

Flere konstanter kan deklareres innenfor én operator, atskilt med komma. Som en variabel har en konstant sitt eget omfang avhengig av hvor (i eller utenfor prosedyren) og hvordan (offentlig eller privat) den ble erklært. Konstanter opprettet av Const-operatøren uten å spesifisere Offentlig eller Privat er offentlige som standard.

I Explorer-treet i Script Objects Editor-vinduet er det en spesiell seksjon - konstanter og variabler - for å erklære globale konstanter synlige for alle skriptfunksjoner i prosjektet.

Strengkonstantverdier er omgitt av doble anførselstegn.

Verdier av typen Dato skal være omgitt av pund-tegn (#) og bruke formatet måned/dag/år i USA. For eksempel:

Const Public IndependenceDay = # 25/03/1918 #

For å unngå forvirring mellom konstanter og variabler, anbefales det å bruke et enkelt prefiks for alle konstanter, for eksempel "con", eller å skrive konstantnavnet med store bokstaver.

For å gjøre arbeidet til programmereren enklere, inneholder VBScript et sett med forhåndsdefinerte konstanter.

Operatører

VBScript-operatorer faller inn i fem kategorier: aritmetikk, sammenligning, sammenslåing, boolsk og tilordning.

Aritmetiske operatorer

Operatør Eksempel på bruk Beskrivelse
^ tall ^ eksponent Hever tall til eksponent. Tall kan være mindre enn null bare i tilfelle av en heltallsgrad. Hvis en av operandene er Null, evalueres hele uttrykket til Null. Hvis flere eksponentiseringer utføres på rad, beregnes resultatet fra venstre mot høyre.
* nummer1 * nummer2 Produkt av to tall. Hvis operanden er tom, antas den å være null. Hvis minst én av operandene er Null, evalueres hele uttrykket til Null.
/ nummer1 / nummer2 Reell deling av to tall. For operander ligner reglene på multiplikasjonsoperatoren.
\ nummer1 \ nummer2 Heltallsdivisjon. Begge operandene castes til typen Byte, Heltall eller Long før de evalueres. For øvrig gjelder samme regler som for divisjonsoperatøren.
Mod nummer1 Mod nummer2 Resten av en heltallsdivisjon. Kaster operander til et heltall, samt reglene for håndtering av Empty og Null, som i heltallsdivisjon.
+ uttrykk1 + uttrykk2 Hvis begge operandene er tall, er resultatet deres aritmetiske sum. Hvis begge operandene er strenger - sammenkobling (sammenkjetting) av to strenger. Hvis en operand er et tall og den andre er en streng, vil strengoperanden bli konvertert til et tall og lagt til den numeriske. Hvis minst én av operandene er Null, evalueres hele uttrykket til Null. Hvis begge operandene er tomme, er resultatet en heltallsverdi på 0. Hvis bare én operator er tom, returneres verdien til den andre operanden som resultat.
- nummer1 - tall2 eller - tall I det første tilfellet returnerer den forskjellen på to tall. I den andre inverterer den tegnet til tallet. Reglene for null- og tommeoperander er de samme som for multiplikasjonsoperatoren.

Sammenligningsoperatører

Sammenligningsoperatørformat:

Resultat = uttrykk1 sammenligningsoperator uttrykk2

der følgende sammenligningsoperatorer brukes:< (меньше), <= (меньше или равно), >(større enn),> = (større eller lik), = (lik),<>(ikke lik).

Avhengig av typene og verdiene til operandene, utføres sammenligningen som følger:

Hvis At
Begge operandene er tall. Sammenligner to tall.
Begge operandene er streng. Sammenligning av to strenger utføres.
En av operandene er et tall, og den andre er en streng. Strengeoperanden støpes til et tall og en sammenligning av de to tallene utføres.
En av operandene er Empty, og den andre er et tall. Operaanden med verdien Empty antas å være 0.
En av operandene er Empty, og den andre er en streng. Operaanden med verdien Empty antas å være den tomme strengen "". Sammenligning av to strenger utføres.
Begge operandene er tomme. Operandene regnes som like.
Minst en av operandene er Null. Resultatet er null.

Spesialoperatoren Is brukes til å sammenligne to objektvariabler og returnerer True hvis begge variablene refererer til samme objektforekomst.

Sammenkoblingsoperatører

Resultat = uttrykk1 og uttrykk2

Hvis operanden ikke er en streng, kastes den til en strengtype. Hvis begge operandene er Null, er resultatet også Null, men i motsetning til andre operatorer, hvis bare én operand er Null, antas det å være en tom streng. En operand med verdien Empty behandles også som en tom streng "".

Logiske operatører

VBScript gir oss følgende logiske operatorer:

  1. Logisk ekskludering (Xor);
  2. boolsk ekvivalent (ekvivalent);
  3. Logisk implikasjon (Imp).

Boolske uttrykk eller numeriske verdier kan brukes som operander for logiske operatorer. I det første tilfellet vil resultatet være en boolsk konstant, i det andre - et tall. Avhengig av operatøren, kan mating av én eller to nullverdier til inngangen resultere i et nullresultat. Ikke-operatoren er unær og returnerer den logiske negasjonen av uttrykket. Ikke-operatoren utfører bitvis inversjon på en numerisk operand. Resten av de logiske operatorene er binære. Tabellen nedenfor viser resultatene av å utføre hver av operatørene avhengig av verdien av operandene Exp1 og Exp2:

Exp1 Exp2 Og Eller Xor Ekv Imp
ekte ekte ekte ekte Falsk ekte ekte
ekte Falsk Falsk ekte ekte Falsk Falsk
Falsk ekte Falsk ekte ekte Falsk ekte
Falsk Falsk Falsk Falsk Falsk ekte ekte
ekte Null Null ekte Null Null Null
Falsk Null Falsk Null Null Null ekte
Null ekte Null ekte Null Null ekte
Null Falsk Falsk Null Null Null Null
Null Null Null Null Null Null Null

I livet brukes operatørene And og Or oftest, og mye sjeldnere - Xor. Vi har ikke vært nødt til å forholde oss til den praktiske bruken av operatørene Eqv og Imp. Hvis det er vanskelig for deg å håndtere tabellen ovenfor, oppsummerer vi effekten av disse operatørene:

  • Og er sann bare hvis begge operandene er sanne. I alle andre tilfeller er den enten falsk eller null.
  • Eller er True hvis minst en av operandene er True.
  • Xor er True hvis verdiene til operandene er forskjellige og False hvis de er like.

Når du utfører bitvis over numeriske operander, bestemmes resultatet av den logiske operatoren fra følgende tabell:

Exp1 Exp2 Og Eller Xor Ekv Imp
0 0 0 0 0 1 1
0 1 0 1 1 0 1
1 0 0 1 1 0 0
1 1 1 1 0 1 1

Oppdragsoperatør

Oppdragsoperatøren (=) er beskrevet i detalj i avsnittet "Variabler".

Operatørordre

Hvis et uttrykk inneholder flere operatorer, brukes de i en rekkefølge som kalles operatorprioritet. Du kan endre standardrekkefølgen ved å bruke parenteser. Et uttrykk innenfor parentes vurderes alltid først.

I et uttrykk som inneholder operatorer av forskjellige kategorier, utføres først aritmetiske operasjoner, deretter sammenligningsoperatorene og til slutt de logiske operatorene. Alle sammenligningsoperatorer har samme prioritet og blir evaluert fra venstre til høyre. Aritmetiske og logiske operatorer blir evaluert i følgende rekkefølge:

  1. Eksponentiering (^);
  2. Talltegnendring, unær minus (-);
  3. Multiplikasjon (*) og divisjon (/);
  4. Heltallsdivisjon (\);
  5. Resten av en heltallsdivisjon (Mod);
  6. Addisjon (+) og subtraksjon (-);
  7. Slå sammen strenger (&).

Hvis multiplikasjon og divisjon forekommer i samme uttrykk, utføres operasjonene i venstre-til-høyre rekkefølge. En lignende regel gjelder ved samtidig tilstedeværelse av addisjons- og subtraksjonsoperatorene.

Strengesammenkoblingsoperatoren (&) er ikke aritmetisk og er prioritert mellom aritmetiske og sammenligningsoperatorer.

Sekvensen for logiske operatorer er som følger:

  1. Logisk negasjon, inversjon (Ikke);
  2. Logisk multiplikasjon, konjunksjon (Og);
  3. Logisk tillegg, disjunksjon (Eller);
  4. Logisk ekskludering (Xor);
  5. boolsk ekvivalent (ekvivalent);
  6. Logisk implikasjon (Imp).

Betingede uttrykk

Betingede uttrykk brukes til å kontrollere rekkefølgen for utførelse av programkommandoer og lar deg organisere overganger (grener) og repetisjoner av kommandoer. Vanligvis brukes sammenligningsoperatorer sammen med betingede uttrykk.

Uttrykk Hvis..Da..Else

Det betingede grenuttrykket If lar deg utføre en bestemt gruppe kommandoer avhengig av resultatet av et logisk uttrykk eller verdien til en boolsk variabel.

For å utføre en enkelt kommando når en gitt betingelse er oppfylt, brukes en-linjes uttrykkssyntaks:

Dim S If DatePart ("w", nå) = vbMonday Så S = "mandag" Application.MessageBox S, "", vbOkOnly

Merk at Else-delen er utelatt i dette tilfellet. For å utføre en gruppe setninger, omslutt dem mellom søkeordene Then og End If.

Dim S If DatePart ("w", nå) = vbMonday Then S = "I dag er mandag" Application.MessageBox S, "", vbOkOnly End If

Hvis, når betingelsen er oppfylt, en kode må utføres, og hvis betingelsen ikke er oppfylt, en annen, brukes uttrykkssyntaksen med Else-delen:

Dim S If DatePart ("w", nå) = vbMonday Then S = "I dag er mandag" Else S = "I dag er ikke mandag" End If Application.MessageBox S, "", vbOkOnly

Hvis du trenger å velge mellom flere alternativer, er syntaksen med ElseIf-konstruksjonen egnet:

Dim S, DD = DatePart ("w", nå) If D = vbMonday Then S = "Monday" ElseIf D = vbTuesday Then S = "Tuesday" ElseIf D = vbWednesday Then S = "Wednesday" ... End If Application. MessageBox S, "", vbOkOnly

Hvis utsagn kan nestes:

Dim S, DD = DatePart ("w", nå) Hvis D = vbMonday Then S = "Monday" Else If D = vbTuesday Then S = "Tuesday" Else If D = vbWednesday Then S = "Wednesday" Else ... End If End If End If

Selv om antallet ElseIf-seksjoner i et betinget uttrykk er ubegrenset, kan mye bruk av dem føre til forvirrende, uleselig kode. Hvis du velger ett alternativ fra en rekke mulige alternativer, avhengig av verdien til en velger, anbefales det å bruke uttrykket Velg tilfelle.

Velg..Kasusuttrykk

La oss skrive om ukedagseksempelet ved å bruke et utvalgsuttrykk:

Dim S Velg Case DatePart ("w", nå) Case vbMonday S = "mandag" Case vbTuesday S = "Tuesday" Case vbWednesday S = "Wednesday" ... Case Else Err.Raise 32000, "", "Ukjent dag av uken "Sluttvalg

Siden velgeruttrykket kun evalueres én gang, vil bruk av Select..Case resultere i mer effektiv kode. Det anbefales å alltid bruke Case Else-delen for å fange opp ugyldige eller ubehandlede velgerverdier.

Sløyfeoperatører

Ganske ofte oppstår det en situasjon når koden må kjøres på nytt. For å gjøre dette, skriv en looping-setning som gjentar visse kommandoer om og om igjen. Loop-setninger brukes i mange situasjoner: når man beregner en total over en liste med tall, beveger seg gjennom poster i et datasett, eller for å kjøre en kodeblokk for flere objekter. Det er flere løkker, beskrevet i de følgende avsnittene. Noen av dem er oppfylt mens betingelsen er sann, noen - mens usann. Og til slutt er det de som blir henrettet et gitt antall ganger.

Operatør Do..Loop

Denne operatøren er ment å utføre en gruppe kommandoer til en gitt tilstand er Sann eller til den blir Sann. Tilstanden kan kontrolleres som i begynnelsen av syklusen:

Gjør [(Mens | Inntil) tilstand] Loop

og på slutten:

Gjør sløyfe [(mens | inntil) tilstand]

Exit Do-kommandoen kan vises et ubegrenset antall ganger i hoveddelen av loopen. Det brukes vanligvis sammen med det betingede uttrykket If..Then og lar deg overføre kontroll til setningen umiddelbart etter loopen. Når du bruker Exit Do inne i en nestet sløyfe, vil kontrollen flyte til den ytre sløyfen.

Følgende kode erstatter terningene:

Dim Resp, Num Do Num = Int (6 * Rnd + 1) Resp = Application.MessageBox (Num & "Another number?", "", _ VbYesNo eller vbQuestion) Loop Til Resp = vbNo

Mens..Wend

Det er en avkortet versjon av Do..Loop-operatoren og lar deg utføre en gruppe kommandoer mens betingelsen er True. Operatørsyntaks:

Mens tilstanden Wend

Merk at Exit Do ikke har noen effekt i denne sløyfen. Mens..Vend-løkker kan nestes.

For..Neste

Denne sløyfen gjentar et spesifisert sett med kommandoer et spesifisert antall ganger. Syntaksen til operatøren er:

For teller = start Til slutt Neste

Før loopen starter settes tellervariabelen til å starte. Deretter kontrolleres oppfyllelsen av tellerbetingelsen<= end, при step >= 0, eller teller> = slutt, hvis trinnet er negativt. Etter utførelse av kommandoblokken, økes den variable telleren med verdien av trinn, og alt gjentas fra begynnelsen.

Det er ikke forbudt å endre telleren i løkken, men det frarådes på det sterkeste, da det kompliserer forståelsen av programlogikken og dens feilsøking.

Exit For kan vises et hvilket som helst antall ganger i løkkens brødtekst. Løkker kan nestes. For eksempel initialiserer en sløyfe som denne en 3D-array:

Dim A (9, 9, 9) Dim I, J, K For I = 0 Til 9 For J = 0 Til 9 For K = 0 Til 9 A (I, J, K) = 1 Neste Neste Neste

For hver..Neste

For Every..Next loop-setningen gjentar et spesifisert sett med kommandoer for hvert element i en matrise eller samling og har følgende syntaks:

For hvert element I gruppe Neste

Løkken utføres hvis det er minst ett element i matrisen eller samlingen. Exit For kan vises et hvilket som helst antall ganger i løkkens brødtekst.

La oss illustrere bruken av For Every..Next med følgende kode, som viser en liste over filer fra rotkatalogen til stasjonen c: \

Dim fso, f, f1, fc, s Sett fso = CreateObject ("Scripting.FileSystemObject") Sett f = fso.GetFolder ("c: \") Sett fc = f.Filer for hver f1 i fc s = s & f1 .name & vbNewLine Next Application.MessageBox s, "Files on c: \", vbOkOnly

Prosedyrer

For å spare minne og strukturere programmet, kan en kodebit som kalles gjentatte ganger på forskjellige steder formateres som en prosedyre. Det er to typer prosedyrer i VBScript: Subs og Functions. En subrutine er en sekvens av utsagn omgitt av nøkkelordene Sub og End Sub. Subrutinen kan godta parametere som input, men returnerer ikke en verdi. En funksjon - en sekvens av utsagn innelukket mellom en funksjon og en sluttfunksjon - returnerer et resultat og kan derfor brukes i et uttrykk. Hver prosedyre må ha et navn som er unikt i modulen. Navnene på prosedyrene som er deklarert i den globale modulen må være unike gjennom hele prosjektet.

Definisjonen av en subrutine og en funksjon har følgende syntaks:

| Privat] Undernavn [(arglist)] End Sub | Privat] Funksjonsnavn [(arglist)] Avslutt funksjon

Offentlige prosedyrer er globale og tilgjengelige i alle manus i programmet. Private prosedyrer er kun tilgjengelige i skriptet der de ble deklarert. Med mindre annet er oppgitt, er den erklærte prosedyren offentlig tilgjengelig. Standard nøkkelordet kan bare brukes i hoveddelen av klassen og tjener til å indikere standardmetoden for denne klassen.

Parameterlisten har følgende syntaks:

Varnavn [, ...]

Parametre kan sendes etter verdi (ByVal) eller ved referanse (ByRef). Som standard sendes alle parametere etter verdi. Konstanter, resultatene av å evaluere uttrykk kan bare sendes etter verdi. Endring av parameteren som sendes ved referanse vil endre verdien til den eksterne variabelen. La oss forklare overføringen av parametere til prosedyren ved å bruke følgende eksempel:

Sub DoCalculation (ByRef A, ByVal B, ByVal C) A = C * 2 B = C / 2 End Sub Sub TestVar Dim V1, V2 V1 = 1 V2 = 2 DoCalculation V1, V2, 10 "Etter DoCalculation-prosedyren" V1 = 20 "V2 = 2 End Sub

Variabler som er deklarert i hoveddelen av en prosedyre er lokale og blir ødelagt når den fullfører utførelsen. Lokale variabelverdier lagres ikke.

Listen over parametere er angitt i parentes når du kaller en funksjon eller når du ringer en subrutine ved hjelp av Call-operatøren. Så vi kan skrive kallet til DoCalculation-prosedyren i eksemplet ovenfor som følger:

Ring DoCalculation (V1, V2, 10)

Utfør uttrykk

VBScript-klasser

VBScript lar deg lage nye klasser, som vi vil kalle VB-klasser i det følgende. Generelt sett er de ikke fullverdige klasser i forståelsen av objektorientert programmering, siden de ikke støtter arv og følgelig polymorfisme. Så av de tre hvalene som det objektorienterte paradigmet er basert på, gjenstår bare innkapsling - evnen til å kombinere data og metoder innenfor en enhet.

Definisjonen av en klasse utføres ved å bruke følgende konstruksjon:

Klassenavnsetninger Sluttklasse

der navn er navnet på klassen og utsagn er en eller flere definisjoner av variabler, egenskaper, prosedyrer eller funksjoner, også referert til som medlemmer av klassen. Vær oppmerksom på at i motsetning til Delphi, hvor klassedefinisjonskoden kun inneholder prosedyre- og funksjonserklæringer, i en VB-klasse, skrives medlemskoden direkte i klasseteksten.

Klassemedlemmer kan erklæres private eller offentlige. De førstnevnte er kun synlige i koden til denne klassen, mens de sistnevnte er tilgjengelige både for den interne koden og utenfor. Hvis en variabel eller funksjon (prosedyre) ikke inneholder en eksplisitt definisjon av offentlig eller privat, anses de som offentlige. Prosedyrer eller funksjoner erklært som offentlige i en klasseblokk blir metoder for denne klassen.

Variabler som er erklært som offentlige, blir klasseeiendommer sammen med eiendommer som er deklarert direkte ved å bruke konstruksjonene Property Get, Property Let, Property Set.

Definere klasseegenskaper

Ovenfor har vi allerede sagt at feltene til en klasse, enten de er eksplisitt eller ikke eksplisitt erklært som offentlige, blir dens egenskaper. I tillegg kan du opprette en klasseegenskap ved å definere spesielle funksjoner for å lese egenskapsverdien (Property Get), samt for å tildele den (Property Let eller Property Set).

Syntaksen for å definere slike funksjoner er som følger:

| Privat] Eiendom Hent navn [(arglist)] [navn = uttrykk] [navn = uttrykk] End Property Property La navn (verdi) End Property Property Set navn (referanse) End Property

Ved å definere kun én funksjon, lesing eller oppgave, kan du opprette henholdsvis en skrivebeskyttet eller skrivebeskyttet egenskap. Property Let-prosedyren brukes til å tilordne enkle datatyper, og Property Set-prosedyren brukes til å sende en objektreferanse. Merk at alle tre funksjonene kan akseptere en vilkårlig parameterliste som input. Slik kan du organisere for eksempel matriseegenskaper ved å sende elementindeksen som et argument.

Opprette og ødelegge en forekomst av en VB-klasse

En forekomst av en VB-klasse opprettes ved å bruke operatøren New.

Dim X Sett X = Nytt klassenavn

Ødeleggelsen av en tidligere opprettet forekomst skjer automatisk ved fullføring av kodeblokken der den tilsvarende variabelen ble deklarert og forutsatt at det ikke er noen eksterne referanser til den. Hvis du må ødelegge forekomsten manuelt, må du tilordne Nothing-verdien til variabelen.

'Deklarere en variabel og lage en forekomst av klassen Dim X Sett X = Nytt klassenavn ...' ved å bruke en forekomst av klassen ... 'ødelegge en forekomst av klassen Sett X = Notning ...

Initialiser og avslutt hendelser

Initialize-hendelsen oppstår når klassen instansieres, og avsluttes når den blir ødelagt. Utvikleren kan definere sine egne hendelsesdatabehandlere. Nedenfor er et eksempel på bruk av opprettelse og sletting av hendelser for et objekt:

Klasse TestClass "Definer Initialize-hendelsesbehandleren. Private Sub Class_Initialize MsgBox (" TestClass started ") End Sub" Definer Terminate-hendelsesbehandleren. Private Sub Class_Terminate MsgBox ("TestClass terminated") End Sub End Class "Opprett en forekomst av TestClass-klassen." Meldingen "TestClass started" Set X = New TestClass "Destroy the instance." Meldingen "TestClass terminated" Set X = Ingenting

Denne leksjonen vil fokusere på Funksjon... Avslutt funksjon- en subrutine som returnerer en bestemt verdi og ca prosedyre Sub ... End Sub- en subrutine som ikke returnerer noe. Et par, de er kanskje bare livsviktige nødvendig for å løse noen problemer iVBScript-skript.

Funksjon... Avslutt funksjon.

VBScript-språk vil tillate deg å lage dine egne funksjoner og prosedyrer, og vi må nå finne ut av dette.

Funksjonen (Function ... End Function) kan komme godt med når vi skal utføre samme handling (script, ellers - et uttrykk) flere ganger, men med forskjellige data. I stedet for å duplisere det samme uttrykket hundre ganger, kan du bare skrive det én gang.

Først kommer nøkkelordet Funksjon, og etter den kommer navnet på funksjonen, som du kommer på selv. Etter navnet i parentes, atskilt med komma, er parametrene til funksjonen indikert. Deretter kommer kroppen til funksjonen, som er lukket med nøkkelord Avslutt funksjon... La oss se et eksempel:

"VBScript leksjon nr. 3" file_1.vbs dim a, b Funksjon fun_name (a, b) Dim rezult rezult = a + b fun_name = rezult "tilordne verdien til funksjonen som den vil returnere til oss End Function MsgBox fun_name (5,110 ) MsgBox fun_name (15 , 16) MsgBox fun_name (25,15)

"VBScript leksjon # 3

"Funksjoner (Function ... End Function) og prosedyrer (Sub ... End Sub)

"file_1.vbs

dimme a, b

Funksjon fun_name (a, b)

Svak resultat

rezult = a + b

fun_name = resultat "tilordne en verdi til funksjonen som den vil returnere til oss

Avslutt funksjon

MsgBox fun_name (5, 110)

MsgBox fun_name (15, 16)

MsgBox fun_name (25, 15)

Eksemplet viser at du kan deklarere dine egne variabler i en funksjon. Det er også mulig i selve funksjonen å tildele en verdi til en variabel som den vil returnere til oss. Denne variabelen har samme navn som funksjonen. Dette er nødvendig for at funksjonen skal returnere verdier til oss når den kalles ved å bruke MsgBox på slutten av eksemplet. Hvis dette ikke er nødvendig, kalles funksjonen slik: morsomt_navn 5 110 (ingen parentes).

Med dette ser alt ut til å være klart. La oss nå gå videre.

Sub... Avslutt Sub prosedyre.

Sub... End Sub-prosedyren kan brukes til samme formål som Function... End-funksjonen, men med én betingelse - den returnerer ikke en verdi. Alt skjer i selve prosedyren.

Prosedyren er deklarert med et nøkkelord Under, etterfulgt av et vilkårlig navn på prosedyren og dens verdi i parentes. Prosedyren er avsluttet med nøkkelord End Sub... La oss se et eksempel:

"VBScript Lesson No. 3" funksjoner (Function ... End Function) og prosedyrer (Sub ... End Sub) "file_2.vbs dim a, b Sub sub_name (a, b) Dim rezult rezult = a + b MsgBox rezult Avslutt Sub Call sub_name (5,110) Call sub_name (15,16) Call sub_name (25,15) sub_name 25,1

"VBScript leksjon # 3

"Funksjoner (Function ... End Function) og prosedyrer (Sub ... End Sub)

"fil_2.vbs

dimme a, b

Sub sub_name (a, b)

Selv om bare én type er definert i VBScript

, innenfor denne typen er det en inndeling i undertyper, hvis beskrivelse er gitt i tabellen. A2.1. For å konvertere variabler til en bestemt undertype, må du bruke riktig konverteringsfunksjon; slike funksjoner er også presentert i tabellen. A2.1.

Tabell A2.1. Dataundertyper

Undertype Konverteringsfunksjon Beskrivelse
- Automatisk tilordnet nye variabler når ingen eksplisitt verdi er definert for dem ennå
- Indikerer at variabelen ikke inneholder gyldige verdier
Brukes til å arbeide med boolske variabler som har to gyldige verdier: eller
Inneholder heltall fra 0 til 255
Inneholder heltall i området –32768 til 32768
Spesielt tallformat for pengeverdier
Inneholder heltall i området -2147483648 til 2147483647
Enkelt presisjon flytepunkt type
Type med dobbel presisjon flytepunkt
Inneholder tall som tilsvarer datoer og klokkeslett fra 1. januar 100 til 31. desember 9999
Tegndataundertype. Tekststrenger i VBScript er en sekvens av tegn omsluttet av doble anførselstegn
- Objektreferanse
- Datatype for lagring av feilnummer

Inn i en variabel som tidligere ble deklarert ved hjelp av nøkkelordet

, kan du skrive en lenke til ethvert objekt. Dette gjøres ved å bruke en operatør, for eksempel:
Sett FSO = CreateObject ("Scripting.FileSystemObject")

Her er funksjonen

returnerer en forekomst av et objekt, hvor referansen er lagret i en variabel. :

Konstanter

Egendefinerte konstanter i VBScript er deklarert ved hjelp av nøkkelordet

, for eksempel:
Const MyConst = "Dette er min konstant"

I tillegg støtter VBScript mange innebygde navngitte konstanter (de trenger ikke å deklareres i tillegg i skriptet), hvis bruk gjør det enklere å bruke ulike interne funksjoner (f.eks.

eller ). Navnene, verdiene og beskrivelsene av de interne konstantene er gitt i tabell. A2.2 – A2.9.

Tabell A2.2. Konstanter for å angi farger

Navn Betydning Beskrivelse
& h00 Svart farge
& hFF rød farge
& hFF00 Grønn farge
& hFFF Gul
& hFF0000 Blå farge
& hFF00FF Lilla
& hFFFF00 Turkis
& hFFFFFF hvit farge

Tabell A2.3. Konstanter for nummerering av ukedager

Navn Betydning Beskrivelse
1 søndag
2 mandag
3 tirsdag
4 onsdag
5 Torsdag
6 fredag
7 lørdag

Tabell A2.4. Konstanter for å bestemme den første dagen i uken og den første uken i året

Navn Betydning Beskrivelse
0 Bruk regionale systeminnstillinger for å bestemme den første dagen i uken
1 Den første uken i året regnes som den der det var 1. januar
2 Den første uken i året regnes som den der det var minst fire dager i det nye året.
3 Årets første uke regnes som den første hele uken.

Tabell A2.5. Konstanter for arbeid med dato og klokkeslett

Navn Betydning Beskrivelse
0 Dato og klokkeslett vises i formatet som bestemmes av de regionale innstillingene til systemet
1 Vis dato i fullformat
2 Vis dato i kort format
3 Vis tid i fullformat
4 Vis tid i kort format

Tabell A2.6. Dialogbokskonstanter

Navn Betydning Beskrivelse
0 Knappen vises OK
1 Knappene vises OK og Kansellering(Avbryt)
2 Knappene vises Stoppe(Avbryte), Gjenta(Prøv på nytt) og Hopp over(Overse)
3 Knappene vises Ja(Ja), Nei(Nei) og Kansellering(Avbryt)
4 Knappene vises Ja(Ja og Nei(Nei)
5 Knappene vises Gjenta(Prøv på nytt) og Kansellering(Avbryt)
16 Ikonet vises Stopp Mark
32 Ikonet vises Spørsmålstegn
48 Ikonet vises Utropstegn
64 Ikonet vises
0 Som standard er den første knappen valgt i vinduet.
256 Som standard er den andre knappen valgt i vinduet.
512 Som standard er den tredje knappen valgt i vinduet.
768 Som standard er den fjerde knappen valgt i vinduet.
0 Dialogboksen vises i modal modus
4096 Dialogboksen vises i modal modus og er plassert på toppen av alle lanserte applikasjoner

Tabell A2.7. Resultater av å klikke på knapper i dialogbokser

Navn Betydning Beskrivelse
1 Knapp trykket OK
2 Knapp trykket Kansellering(Avbryt)
3 Knapp trykket Stoppe(Avbryte)
4 Knapp trykket Gjenta(Prøv på nytt)
5 Knapp trykket Hopp over(Overse)
6 Knapp trykket Ja(Ja)
7 Knapp trykket Nei(Nei)

Tabell A2.8. Konstanter for å angi dataundertyper

Navn Betydning Beskrivelse
0 Variabel ikke initialisert
1 Variabelen inneholder ikke gyldige data
2 Variabelen har undertype
3 Variabelen har undertype
4 Variabelen har undertype
5 Variabelen har undertype
6 Variabelen har undertype
7 Variabelen har undertype
8 Variabelen har undertype
9 Variabelen har undertype
10 Variabelen har undertype
11 Variabelen har undertype
12 Variabelen har en undertype (bare for matriser med typevariabler)
13 Datatilgangsobjekt
14 Variabelen har undertype
17 Variabelen har undertype
8192 Variabel er en matrise

Tabell A2.9. Andre konstanter

Navn Betydning Beskrivelse
Chr (13) Vognretur
Chr (13) og Chr (10) Vognretur og linjemating
Chr (12) Oversettelse av siden
Chr (10) Linjeoversettelse
Chr (0) Null kodetegn
Null linje Null linje
Chr (9) Tab-tegn
Chr (11) Vertikalt tabulatortegn
-2 Bruk standardinnstillinger fra regionale systeminnstillinger
-1 Boolsk sant
0 Boolsk verdi "false"
-2147221504 Angir minimumsverdien for brukerdefinerte feiltall

Matriser i VBScript kan være av to typer: statisk (fast lengde) og dynamisk (variabel lengde). Matriser er deklarert, som vanlige variabler, ved å bruke nøkkelordet

.

For å erklære en statisk matrise, etter navnet, må du spesifisere i parentes den største verdien som indeksen til et element i denne matrisen kan ta, for eksempel:

I VBScript (i motsetning til for eksempel VBA) starter nummereringen i matriser alltid fra null, derfor matrisen som er deklarert ovenfor

vil inneholde 11 elementer, som du må referere til som følger:

Du kan deklarere en todimensjonal matrise ved å spesifisere maksimale indeksverdier for henholdsvis rader og kolonner, for eksempel:

Dim MyArr (5, 10) "Array med 6 rader og elleve kolonner

Når du deklarerer en dynamisk matrise, er størrelsene ikke angitt i parentes:

For å bruke en dynamisk matrise i et skript, bruk operatoren

som definerer den spesifikke lengden på matrisen, for eksempel:

Etter det kan elementene i den dynamiske matrisen nås på samme måte som elementene i en vanlig:

MyArr (0) = "Dette er det første elementet"
MyArr (1) = "Dette er det andre elementet"

Merk at en dynamisk matrise kan endres størrelse flere ganger (ved å bruke den samme

). For å bevare innholdet i matrisen, bruk et nøkkelord i operatoren, for eksempel:

Operatører

Flere typer operatører støttes i VBScript, som er beskrevet nedenfor.

Aritmetiske operatorer

De aritmetiske operatorene til VBScript-språket er presentert i tabell. A2.10.


Tabell A2.10. Aritmetiske operatorer

Operatør Beskrivelse
(unær operatør) Reversere tegnet på et argument
(binær operatør) Å trekke fra to tall
Legger til to tall
Multiplikasjon av to tall
Deling av to tall
Heltallsdivisjon av to tall
Beregner resten av to tall
Eksponentieringsoperator

Relasjonelle og boolske operatører

Relasjonelle operatorer brukes til å sammenligne verdiene til to variabler. Disse operatørene, beskrevet i tabellen. A2.11, kan bare returnere boolske verdier

eller .

Tabell A2.11. Relasjonelle operatører


Også inne i betingede operatorer kan logiske operatorer brukes (tabell A2.12).


Tabell A2.12. Logiske operatører

Operatør Beskrivelse
Negasjonsoperatør. Returnerer hvis operanden er lik. Ellers kommer den tilbake
ELLER-operatør. Returnerer hvis en av operandene er lik. Ellers kommer den tilbake
Operatøren av forholdet "EKSKLUSIVT ELLER". Returnerer hvis en av operandene er lik og den andre er lik. Ellers kommer den tilbake
Operatøren av forholdet "AND". Returnerer hvis begge operandene er like. Ellers kommer den tilbake

Betingede operatører

VBScript støtter den betingede operatøren

... Generell oversikt over denne operatøren:
Hvis tilstand_1 Deretter
uttrykk_3]

Når du utfører uttalelsen

den logiske tilstanden blir evaluert ( tilstand_1) etter nøkkelordet. Hvis det, som et resultat av å evaluere tilstanden, oppnås en verdi, da og operatøren går ut. Ellers sjekkes betingelsene etter nøkkelordene etter tur; hvis en av disse betingelsene er sann, blir det tilsvarende uttrykket utført, hvoretter kontrollen overføres til neste operatør etter End If. Hvis ingen av betingelsene som er testet er sanne, kjøres uttrykket etter nøkkelordet. Eksempel:

En annen operatør som lar deg velge mellom flere alternativer er

... Syntaksen for denne setningen er:
Velg Sak uttrykk
Sak verdi_1
uttrykk_3]

Her beregnes først verdien , som deretter sammenlignes med verdiene etter nøkkelordene

... Hvis det er samsvar, utføres setningene i den tilsvarende blokken. Hvis ingen av de tilgjengelige verdiene samsvarer med verdien , deretter utføres utsagnene etter ordet Else. Et eksempel på bruk av operatoren:
Farge = "Fargen er ikke klar"

Sløyfeoperatører

Flere typer looper støttes i VBScript: loop

, sykle, sykle, sykle. La oss vurdere hver av dem mer detaljert.

Syklus For ... Neste

Generelt sløyfeoperatøren

er skrevet som følger:
Til teller = start At slutt

Parameter her er looptelleren;

- startverdien til denne telleren; - sluttverdi; er trinnet til telleren. Hvis nøkkelordet ikke er spesifisert, blir økningen tatt lik én. Sløyfen avsluttes når tellerverdien blir større enn parameterverdien ... Uttrykket brukes for å gå ut av loopen ubetinget.

Et eksempel på bruk av en løkke

vist i liste A2.1. Oppføring A2.1. Et eksempel på bruk av en løkke
"Syklusen vil bli utført 11 ganger

Syklus For hver … Neste

Sløyfeoperatør

er designet for å iterere over alle elementer i en matrise eller samling:
For hver element I gruppe

Her parameter er en variabel som verdien til det gjeldende elementet i en matrise eller samling vil bli skrevet inn under iterasjoner; - navnet på en matrise eller samling av objekter.

Kommentar

Husk at i JScript, for å iterere over alle elementene i en samling, må du bruke hjelpeobjektet

.

Bruke operatøren

du kan umiddelbart gå ut av loopen.

Et eksempel på bruk av en løkke

vist i liste A2.2. Oppføring A2.2. Et eksempel på bruk av en løkke
"Erklære variabler
Dim FSO, mappe, filer, fil, s
s = "Filliste" & vbCrLf
"Opprett et FileSystemObject
Sett FSO = CreateObject ("Scripting.FileSystemObject")
"Opprett et mappeobjekt for rotkatalogen til C-stasjonen:
Set Folder = FSO.GetFolder ("C: \")
"Lag en filsamling av alle filer i rotkatalogen til C-stasjonen:
"Søker gjennom alle elementene i Files-samlingen
"Velg filnavnet for gjeldende element i filsamlingen
"Vis den genererte strengen på skjermen

Syklus Mens... Wend

er skrevet som følger:

Så i løkken

utførelsestilstanden til løkkelegemet kontrolleres før starten av neste iterasjon. Hvis tilstand lik, så utføres løkkens kropp, ellers slutter løkken.

Et eksempel på bruk av en løkke

vist i liste A2.3. Oppføring A2.3. Et eksempel på bruk av en løkke
theCount = 42 "Startverdi for looptelleren
theMoments = "& theCount &" sekunder igjen til eksplosjonen! "
theMoments = "Ett sekund igjen!"
theCount = theCount - 1 "Reduser tellerverdien

Syklus Gjør ... Loop

Denne sløyfen kan brukes på to måter (med en forutsetning, som kontrolleres før starten av neste iterasjon, og med en postbetingelse, som kontrolleres etter slutten av iterasjonen):

Gjøre tilstand
Løkke tilstand

Hvis loopen bruker nøkkelordet

, deretter fortsetter iterasjonene til er lik ; hvis den brukes, vil sløyfen avsluttes så snart verdien av betingelsen blir.

Operatør

lar deg gå ut av loopen før du fullfører iterasjonene.

Et eksempel på bruk av en løkke

vist i liste A2.4. Oppføring A2.4. Et eksempel på bruk av en løkke
Dim howFar "Øvre grense for syklusteller
Dim sum (10) "Array med 11 elementer, indekser fra 0 til 10
"Syklusen vil bli utført 11 ganger

Andre operatører

La oss se på noen flere ofte brukte operatører (tabell A2.13).


Tabell A2.13. Andre operatører

Avvikshåndtering

VBScript-unntakshåndtering er aktivert med operatøren

... Hvis det etter det oppstår en kjøretidsfeil mens du kjører en setning i skriptet, vil kontrollen bli sendt til neste setning i teksten.

Et spesielt objekt brukes til å analysere feil

, som inneholder to egenskaper: - den numeriske koden for feilen som oppstod og - en kort beskrivelse av denne feilen.

Som et eksempel, her er en del av skriptet som håndterer unntak når du kobler til en nettverksstasjon:

Ved feil gjenoppta neste "Slå på håndtering av kjøretidsfeil
"Koble til en nettverksstasjon
WshNetwork.MapNetworkDrive Drive, NetPath
Mess = "Feil ved tilkobling av stasjon" & Drive & "to" & NetPath & _
"Feilkode:" & e.number & "Description:" & e.description
WshShell.Popup Mess, 0, "Map Network Drive", vbCritical
Mess = "Drive" & Drive & "vellykket tilkoblet" & NetPath
WshShell.Popup Mess, 0, "Map Network Drive", vbInformation

For å avbryte unntakshåndteringsmodusen, må du kjøre operatøren

.

Prosedyrer og funksjoner

VBScript støtter to typer subrutiner: innebygde funksjoner og brukerfunksjoner eller prosedyrer.

Matematiske funksjoner

Funksjonene som er tilgjengelige i VBScript for matematiske beregninger er beskrevet i tabellen. A2.14.


Tabell A2.14. Matematiske funksjoner

Funksjon Beskrivelse
Returnerer den absolutte verdien av et tall
Returnerer arctangensen til et tall
Returnerer cosinus til et tall
Eksponentiell funksjon, returnerer tallet e hevet til en potens
Returnerer heltallsdelen av et tall
Returnerer den naturlige logaritmen til et tall
Returnerer et tilfeldig tall mellom 0 og 1
runde ( x [, nvmdesimal])
Returnerer resultatet av avrunding av et tall nøyaktig til desimaler
Signert funksjon av nummer
Returnerer sinusen til et tall
Beregner kvadratroten av et tall og returnerer den resulterende verdien
Returnerer tangensen til et tall

Symbolske funksjoner

De mest brukte funksjonene som kan brukes til å utføre ulike operasjoner på tegnstrenger er beskrevet i Tabell. A2.15.


Tabell A2.15. Symbolske funksjoner

Funksjon Beskrivelse
Returnerer ASCII-koden til det første tegnet i en streng
Returnerer et ASCII-tegn
InStr ( str1, str2 [, sammenlign])
Returnerer indeksen til tegnet der den første forekomsten av en delstreng begynner på linje ... Parameter angir tegnnummeret for å starte søket. Hvis denne parameteren ikke er spesifisert, utføres søket fra begynnelsen av linjen. Søket utføres fra venstre mot høyre. Parameter setter sammenligningsmodus ved behandling av strenger (0 - binær, sammenligning, 1 - tekstsammenligning)
InStrRev ( str1, str2 [, start [, sammenlign]])
Samme som funksjon , men søket utføres fra høyre til venstre, dvs. returnerer nummeret på det siste tegnet som forekomsten av delstrengen begynner fra på linje
Returnerer strengen som er et resultat av sammenkoblingen av delstrengene i matrisen ... Parameter spesifiserer et tegn som skiller understrenger (som standard er dette tegnet et mellomrom)
Returnerer en streng med alle alfabetiske tegn konvertert til små bokstaver
Returnerer tegn fra begynnelsen av linjen
Returnerer antall tegn i en streng
LTrim ( str), RTrim ( str), Listverk ( str)
Fjerner henholdsvis innledende, etterfølgende eller begge mellomrom fra en streng
Midt (str, start [, len])
Returnerer en delstreng fra en streng som starter ved posisjon og har en lengde ... Hvis parameteren ikke er spesifisert, returneres alle tegn som starter fra posisjon til slutten av linjen
Erstatte ( expr, find, replacewith [, start [, count [, compare]]])
Returnerer en streng som er hentet fra en streng ved å erstatte delstrengene som er inkludert i den på understrenger ... Parameter definerer antall understrenger som skal behandles på denne måten (som standard gjøres alle mulige erstatninger). Parameter
Returnerer tegn fra slutten av strengen
Returnerer en streng som består av mellomrom
Dele (Utt. [, delim [, telle [, sammenlign]]])
Returnerer en rekke strenger som er et resultat av splitting av en streng inn i understrenger. Parameter spesifiserer et tegn som skiller delstrenger (som standard er dette tegnet et mellomrom). Parameter bestemmer antall understrenger som skal behandles på denne måten (som standard skrives alle understrenger til matrisen). Parameter setter sammenligningsmodus når du arbeider med strenger (0 - binær sammenligning, 1 - tekstsammenligning)
StrComp (str1, s tr2 [, sammenlign])
Returnerer et tall - resultatet av strengsammenligning og ... Hvis , deretter -1 returneres; hvis, så returneres 0; hvis , så returneres 1. Parameter setter sammenligningsmodus når du arbeider med strenger (0 - binær sammenligning, 1 - tekstsammenligning)
Returnerer en streng bestående av tegn
Returnerer en streng med alle alfabetiske tegn konvertert til store bokstaver

For å jobbe med dato og klokkeslett har VBScript et stort sett med funksjoner, hvorav de viktigste er vist i tabellen. A2.16.


Tabell A2.16. Funksjoner for arbeid med dato og klokkeslett

Funksjon Beskrivelse
Returnerer gjeldende systemdato
DateAdd ( intervall, tall, dato)
Returnerer en dato som er atskilt fra datoen intervaller spesifisert av parameter , som kan ha følgende verdier: "yyuy" - år, "q" - quarter, "m" - month, "y" - day of the year, "d" - day, "w" - week, "ww" - uke i året, "h" - time, "m" - minutt, "s" - sekund
DatoDiff ( interval, date1, date2 [, firstdayofweek [, firstweekofyear]])
Returnerer forskjellen i intervaller (de mulige verdiene for denne parameteren er de samme som i funksjonen) mellom datoer og ... Parameter - dette er en konstant som viser hvilken av ukedagene som bør regnes som den første (se tabell A2.3, A2.4). Parameter er en konstant som viser hvilken uke som bør regnes som årets første (se tabell A2.4)
DatoPart ( interval, date [, firstdayofweek [, firstweekofyear]])
Returnerer den delen av datoen som tilsvarer parameteren ... Parameterverdier og her er de samme som i funksjonen
DateSerial ( år måned dag)
Returnerer en undertypevariabel som samsvarer med det angitte året (parameter), måned (parameter) og dag (parameter )
Returnerer en undertypevariabel som tilsvarer datoen spesifisert av karakterparameteren
Trekker ut timetallet fra datoen eller klokkeslettet spesifisert av parameteren. Returnerer et heltall fra 0 til 23
Returnerer hvis parameteren spesifiserer en gyldig dato, ellers
Trekker ut antall minutter fra datoen eller klokkeslettet spesifisert av parameteren ... Returnerer et heltall fra 0 til 59
Trekker ut månedsnummeret fra datoen spesifisert av parameteren. Returnerer et heltall fra 1 til 12
Månedsnavn ( måned [, forkortelse])
Returnerer navnet for måneden med et tall ... Hvis boolesk parameter er lik, så presenteres månedens navn som en forkortelse, ellers - i sin helhet
Returnerer gjeldende dato og klokkeslett i skjemaet som tilsvarer de regionale innstillingene til Windows
Returnerer gjeldende systemtid
Returnerer antall sekunder siden midnatt
TimeSerial ( time, minutt, sekund)
Returnerer en undertypevariabel som tilsvarer angitt time (parameter), minutt (parameter) og sekund (parameter)
Returnerer en undertypevariabel som tilsvarer tiden spesifisert av karakterparameteren
Ukedag (dato [, første dag i uken])
Returnerer et heltall – ukedagen for datoen spesifisert av parameteren. Parameter er en konstant som indikerer hvilken ukedag som bør vurderes først
Ukedagnavn ( ukedag [, abbr [, første dag i uken]])
Returnerer navnet for ukedagen med et sekvensielt nummer ... Hvis boolesk parameter er lik, så presenteres navnet på ukedagen som en forkortelse, ellers - i sin helhet. Parameterverdi her er det samme som i funksjonen
Trekker ut året fra datoen spesifisert av parameteren , og returnerer dette heltallet

syntaktisk programmeringsoperatørskript

VBScript gir to typer prosedyrer: prosedyrer (subrutiner) - nøkkelordet Sub, og funksjoner (funksjoner) - angitt med nøkkelordet Funksjon. Den eneste forskjellen er at funksjoner returnerer en viss verdi. I begge tilfeller er prosedyrer en kodeblokk. Definisjonen av en prosedyre eller funksjon må avsluttes med nøkkelordene End Sub eller End Function Prosedyre eller funksjonsanrop: Ring prosedyrenavn, ordet Call kan utelates. Parametre kan overføres til en prosedyre ved referanse eller etter verdi. Ved referanse - verdien av den opprinnelige variabelen endres, etter verdi - en kopi opprettes, og verdien til den opprinnelige variabelen endres ikke. Som standard, i VBScript, sendes parameteren ved referanse (ByRef). Hvis du trenger å passere etter verdi, kan du bruke ByVal nøkkelordet: Function function_name (ByVal variabel_navn)

Innebygde VBScript-funksjoner

  • 1. Funksjoner for konvertering og kontroll av VBScript-datatyper (C-convert, I-Is (type)):
    • * CBool ​​​​() - konverterer variabelen til den boolske typen;
    • * CByte () - konverterer variabelen til Byte-typen;
    • * CCur () - konverterer variabelen til valutatypen;
    • * CDate () - konverterer variabelen til datotypen;
    • * CDbl () - konverterer variabelen til Double-typen;
    • * CInt () - konverterer variabelen til heltallstypen;
    • * CLng () - konverterer variabelen til typen Long;
    • * CSng () - konverterer variabelen til Single-typen;
    • * CStr () - konverterer variabelen til strengtypen;
    • * TypeName () - som returnerer navnet på den brukte datatypen;
    • * IsNumeric ();
    • * IsDate ();
    • * IsArray ();
    • * Er tom ();
    • * IsError ();
    • * Mangler ();
    • * IsNull ();
    • * IsObject ();
    • * Hex () - konverter desimaldata til strengrepresentasjon av heksadesimale verdier;
    • * Okt () - Konverter desimaldata til strengrepresentasjon av oktale verdier.
  • 2. Strengfunksjoner i VBScript:
    • * Asc () - returnerer den numeriske koden til tegnet;
    • * AscB () - returnerer den første byten av den numeriske tegnkoden;
    • * AscW () - returnerer koden for et tegn i unicode-format;
    • * Chr (), ChrB (), ChrW () - returnerer et tegn etter kode;
    • * InStr () - lar deg finne en sekvens av tegn i kroppen til en strengvariabel og returnere dens posisjon. Søket utføres fra begynnelsen av linjen. Hvis ingenting blir funnet, returneres 0;
    • * InStrRev () - utfører det samme som InStr (), men søket utføres fra slutten av linjen;
    • * Venstre () - lar deg ta et spesifisert antall tegn fra en strengsekvens, tellende fra venstre;
    • * Høyre () - lar deg ta det angitte antallet tegn fra strengsekvensen, tellende fra høyre;
    • * Mid () - lar deg ta et spesifisert antall tegn fra en strengsekvens, tellende fra en spesifisert posisjon;
    • * Len () - returnerer lengden på strengen;
    • * LCase () - konverterer en streng til små bokstaver;
    • * UCase () - konverterer strengen til store bokstaver;
    • * LTrim () - fjerner mellomrom på begynnelsen av en linje;
    • * RTrim () - fjerner mellomrom på slutten av en linje;
    • * Trim () - fjerner mellomrom på begynnelsen og slutten av en linje;
    • * Erstatt () - erstatter en delstreng med en annen;
    • * Mellomrom () - returnerer en streng med den angitte lengden fra mellomrom;
    • * String () - returnerer en streng med den angitte lengden på tegn;
    • * StrComp () - sammenligner to strenger;
    • * StrConv () - konverterer en streng;
    • * StrReverse () - "vender" sekvensen av tegn i en streng i omvendt rekkefølge;
    • * Tab (). - vis det spesifiserte antallet tabulatortegn (ligner på den innebygde konstanten vbTab);
  • 3. Numeriske funksjoner i VBScript:
    • * Abs () - returnerer modulen til et tall;
    • * Int () - returnerer nærmeste heltall;
    • * Fix () - forkaster brøkdelen;
    • * Round () - runder opp til det angitte antall desimaler;
    • * Rnd () og Randomize-kommandoen brukes for å få tilfeldige verdier. Syntaks: random_number = Int (minimum + (Rnd () * maksimum)). Før du bruker Rnd (), må du initialisere tilfeldig tallgeneratoren med kommandoen Randomize;
    • * Sgn () - returnerer informasjon om tegnet til et tall. Returnerer -1 for negativ, +1 for positiv og 0 for 0.
  • 4. Datetime-funksjoner i VBScript:
    • * Dato () - returnerer systemdatoen;
    • * Tid () - returnerer systemtiden;
    • * Nå () - returnerer dato og klokkeslett. Du kan sette dem med operatorene med samme navn, for eksempel: Dato = # 6/10/2009 # (# Måned / dag / år #);
    • * DateAdd () - Legger til det angitte antallet år, måneder osv. til datoen;
    • * DateDiff () - returnerer forskjellen mellom datoer i enheter fra år til sekunder;
    • * DatePart () - returnerer den angitte delen av datoen (år, måned, ukedag, etc.);
    • * DateSerial () - Oppretter en datoverdi basert på de beståtte tegnverdiene. DateValue ()-funksjonen gjør det samme, men med et annet format for verdiene som mottas. TimeSerial () og TimeValue () fungerer på lignende måte (for tid);
    • * Dag () - returnerer dagen (ligner på den tilsvarende DatePart ());
    • * År () - returnerer året;
    • * Måned () - returnerer måneden;
    • * Ukedag () - returnerer ukedagen;
    • * Time () - returnerer timen;
    • * Minutt () - returnerer minutter;
    • * Second () - returnerer sekunder;
    • * MonthName () - returnerer navnet på måneden;
    • * Timer () - Returnerer antall sekunder som har gått siden midnatt.
  • 5. Formateringsfunksjoner i VBScript:
    • * Format () - Formatsyntaks (uttrykk, "format"), for eksempel: Format (2.505, "#, ## 0.00"). Likeledes for resten av funksjonene;
    • * Formattall ();
    • * FormatCurrency ();
    • * FormatDateTime ();
  • 6. Funksjoner for å jobbe med arrays i VBScript:
    • * Array () - lar deg opprette en matrise med ønsket størrelse og type automatisk og umiddelbart laste inn de beståtte verdiene i den;
    • * Filter () - lar deg få en annen på grunnlag av en matrise, filtrerer ut elementene vi trenger i den originale matrisen;
    • * LBound () - returner informasjon om den nedre grensen til matrisen (nummeret til den første verdien i matrisen);
    • * UBound () - returner informasjon om den øvre grensen til matrisen (nummeret til den siste verdien i matrisen)
    • * Join () - slår sammen flere strenger som utgjør en matrise til én strengvariabel. Standardskilletegn er et mellomrom, men du kan også spesifisere ditt eget skilletegn;
    • * Splitt () er det motsatte av Join ().
  • 7. Funksjoner for brukerinteraksjon i VBScript:
    • * MsgBox (), konstanter +
    • * InputBox ().

Eksempel ved bruk av MsgBox

Response = MsgBox ("Klikk på knappen", vbYesNo)

Hvis Respons = vbJa Da

"hvis du klikket på Ja-knappen

"hvis du trykket på knappen No

Metoden WshShell.Popup () og Beep-kommandoen brukes også til å samhandle med brukeren.