Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Arvutustel abiks vbscript

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Arvutustel abiks vbscript

    Väike "tutvustus" kuidas kasutada vbscripti arvutuste lihtsamaks muutmisel.
    Kes teab, tore, kes mitte, saab midagi uut teada.
    Sobib tänasesse esimesse septembrisse, et midagi uut õppida.

    Esimene näide:

    Võimsuse arvutus.

    Antud:
    Pinge 12V
    Takistus 8 Oomi

    Vastust ekraanil (msgbox).

    Skripti sisu:

    U=12
    R=8
    w1=U*U/R
    Msgbox w1

    U, R ja w1 on vabalt valitav täht, tähed,
    tähed ja numbrid aga ei tohi alata numbriga,
    sellele omistatakse mingi väärtus mida on võimalik skriptis edaspidi kasutada.

    Sedaviisi on vaja vajalikud arvud alati muuta skriptis,
    On võimalus kasutada inputbox-i, et sisestada arvud, skripti sisu muutmata.

    Näide2:

    f=InputBox("Sagedus (Hz)","Sagedus","")
    c1=InputBox("Mahtuvus (uF)","Mahtuvus","")
    pi=4*Atn(1)
    c=c1/1000000
    s1=1/(2*pi*f*c)
    s2=round(s1,6)
    msgbox "Reaktiivtakistus "&s2

    rida "pi=4*Atn(1)" on pi väärtuse saamiseks, selle võib asendada näiteks pi="3.14",
    tähed "pi" on samuti vabalt valitav.

    msgbox-is kuvatav koosneb siin kahest osast, on string"Reaktiivtakistus " ja arvutuse vastus s2,
    mis peavad eraldatud olema "&" märgiga.
    Kui on soov kuvada tekst pärast vastust oleks rida selline:
    s2&" Reaktiivtakistus"

    Rida "s2=round(s1,6)" on vastuse ümardus 6 kohta.

    Sama skript kirjutatud lühemalt:

    f=InputBox("Sagedus (Hz)","Sagedus","")
    c=InputBox("Mahtuvus (uF)","Mahtuvus","")
    msgbox "Reaktiivtakistus "&round(1/(2*(4*Atn(1))*F*(c/1000000)),6)

    Viimased "" inputbox real on sisestuse ala algväärtus,
    näiteks kui sagedus on arvutustes alati 50Hz siis rida selline:

    f=InputBox("Sagedus (Hz)","Sagedus","50")

    Võib kasutada funktsiooni (Function/End Function):

    f=InputBox("Sagedus (Hz)","Sagedus","")
    c=InputBox("Mahtuvus (uF)","Mahtuvus","")
    Function Xc(f,c)
    pi=4*Atn(1)
    c1=c/1000000
    Xc=round(1/(2*pi*f*c1),6)
    End function
    msgbox "Reaktiivtakistus "& Xc(f,c)

    Siin on suunatud funktsiooni sisendiks inputbox f ja c väärtused.

    ///////////////////////////////////

    Kui on soov kuvada vastus koos sisestatud arvudega:

    RL1=4700
    RL2=15000
    U1=1.4
    U2=3.2
    R0=(RL1-((U1/U2)*RL1))/((U1/U2)-(RL1/RL2))
    s1="Koormustakisti 1: "&RL1&" Ohm"
    s2="Koormustakisti 2: "&RL2&" Ohm"
    s3="Pinge 1 (Koormustakisti 1): "&U1&" V"
    s4="Pinge 2 (Koormustakisti 2): "&U2&" V"
    s5="Vastus: "&round(R0,2)
    MsgBox s1 & vbCrLf & s2 & vbCrLf & s3 & vbCrLf & s4 & vbCrLf & s5,,"Impedants:"

    "vbCrLf" on järgmisel rea peale suunamine.


    //////////////////////////////

    Sama arvutuse skript, mis salvestab sisestatud arvud,
    vastuse, kuupäeva ja kellaaja tekstifaili (asub samas kaustas kus skript ise),
    uue arvutuse korral, lisab teksti eelmise järele:

    Set fso = CreateObject("Scripting.FileSystemObject")
    pfn=fso.GetParentFolderName(Wscript.ScriptFullName )
    RL1=4700
    RL2=15000
    U1=1.4
    U2=3.2
    R0=(RL1-((U1/U2)*RL1))/((U1/U2)-(RL1/RL2))
    If fso.FileExists(pfn&"\Vastus.txt") = False Then
    Set t1 = fso.CreateTextFile(pfn&"\Vastus.txt")
    t1.WriteLine "/-------------------------------------------/"
    t1.WriteLine ""
    t1.WriteLine date&" - "&time
    t1.WriteLine "Koormustakisti 1: "&RL1&" Ohm"
    t1.WriteLine "Koormustakisti 2: "&RL2&" Ohm"
    t1.WriteLine "Pinge 1 (Koormustakisti 1): "&U1&" V"
    t1.WriteLine "Pinge 2 (Koormustakisti 2): "&U2&" V"
    t1.WriteLine "Vastus: "&R0
    t1.WriteLine ""
    t1.close
    else
    Set file = fso.OpenTextFile(pfn&"\Vastus.txt")
    w2 = file.ReadAll
    Set t2 = fso.CreateTextFile(pfn&"\Vastus.txt")
    t2.Write w2
    t2.WriteLine "/-------------------------------------------/"
    t2.WriteLine ""
    t2.WriteLine date&" - "&time
    t2.WriteLine "Koormustakisti 1: "&RL1&" Ohm"
    t2.WriteLine "Koormustakisti 2: "&RL2&" Ohm"
    t2.WriteLine "Pinge 1 (Koormustakisti 1): "&U1&" V"
    t2.WriteLine "Pinge 2 (Koormustakisti 2): "&U2&" V"
    t2.WriteLine "Vastus: "&R0
    t2.WriteLine ""
    t2.close
    end if
    s1="Koormustakisti 1: "&RL1&" Ohm"
    s2="Koormustakisti 2: "&RL2&" Ohm"
    s3="Pinge 1 (Koormustakisti 1): "&U1&" V"
    s4="Pinge 2 (Koormustakisti 2): "&U2&" V"
    s5="Vastus: "&round(R0,2)
    MsgBox s1&vbCrLf&s2&vbCrLf&s3&vbCrLf&s4&vbCrLf&s5,,"Imped ants:"
    wscript.quit

    //////////////////////////


    Siin veel üks võimalus, ScriptControl:
    Loeb rea samas folderis asuvast failist nimega "Sisend.txt"
    Faili Sisend.txt võib kirjutada arvutuskäigu, näiteks:

    29+((10/2)*4)-(6+((2*(20/5))*(9-4)))+15

    Vastus 18.


    Set fso = CreateObject("Scripting.FileSystemObject")
    pfn=fso.GetParentFolderName(Wscript.ScriptFullName )
    Set SC = CreateObject("ScriptControl")
    SC.Language = "VBScript"
    If fso.FileExists(pfn&"\Sisend.txt") = False Then
    wscript.quit
    else
    Set file = fso.OpenTextFile(pfn&"\Sisend.txt")
    w1 = file.ReadLine
    If Trim (w1) <> "" Then
    c1=SC.Eval(w1)
    else
    wscript.quit
    end if
    If fso.FileExists(pfn&"\Vastus.txt") = False Then
    Set t1 = fso.CreateTextFile(pfn&"\Vastus.txt")
    t1.WriteLine "/-------------------------------------------/"
    t1.WriteLine ""
    t1.WriteLine date&" - "&time
    t1.WriteLine "Sisend: "&w1
    t1.WriteLine "Vastus: "&c1
    t1.WriteLine ""
    t1.close
    else
    Set f = fso.GetFile(pfn&"\Vastus.txt")
    Set file = fso.OpenTextFile(pfn&"\Vastus.txt")
    w2 = file.ReadAll
    Set t2 = fso.CreateTextFile(pfn&"\Vastus.txt")
    t2.Write w2
    t2.WriteLine "/-------------------------------------------/"
    t2.WriteLine ""
    t2.WriteLine date&" - "&time
    t2.WriteLine "Sisend: "&w1
    t2.WriteLine "Vastus: "&c1
    t2.WriteLine ""
    t2.close
    end if
    s1="Sisend: "&w1
    s2="Vastus: "&c1
    MsgBox s1&vbCrLf&s2,vbOKOnly+vbInformation,date&"-"&time
    wscript.quit
    end if

    //////////////////////////

    Palju seletusi ja õpetusi annab google...


    Learn how to use operators in VBScript with Tizag.com's VBScript Operators lesson.




    //////////////////////////


    *
    Skripti salvestamine:

    Näidis skriptide sisu selles teemas on tumepunase värvusega.
    Skripti faili sisu lisada faili, mille formaat on .vbs
    Näiteks teha uus tekstifail "New Text Document.txt" ja muuta txt -> vbs

    *
    Võimalusi on palju, saab veel näiteks kasutada skripti html lehe päises,
    saab teha oma individualiseeritud GUI-d.
    http://hparchive.com/
    https://worldradiohistory.com/index.htm
Working...
X