VBS särskilt datum Tracker (6 / 8 steg)

Steg 6: Koden



1) öppna programmet Anteckningar:
Klicka på Start = > program = > tillbehör = > Klicka på anteckningar
Eller
Klicka på Start = > klicka kör = > typ anteckningar i Run inmatningsrutan sedan klicka OK.
2) kopiera koden nedan apostrofen och asterisker linje sedan klistra in den i anteckningar.

' *********************************************
Dim varsel
Dim meddelande
Dim fso
Dim objFile
Dim arrLines
Dim arrList
Dim filnamn
Dim Hol(12)

Ställa in fso = CreateObjectScripting.FileSystemObject("")

Filnamn = "c:\MySpecialDates.txt"

CONST ForReading = 1
CONST ForWriting = 2 "kommer över skriva allt
CONST ForAppending = 8 "kommer att skapa eller lägga till fil

"denna kod kommer att skapa filen Data
Om (fso. FileExists(FileName)) = falskt då
Ange objFile = FSO. OpenTextFile (filnamn, ForAppending, sant)

objFile.Close

Slut om

"Felhantering
På fel återupptas nästa

"Standard Inputbox
Meddelande = "Min speciella datum - idag är" & WeekDayNAme(WeekDay(Date)) & "" & datum
Meddelande = "Vad vill du göra?" & vbcr & vbcr & _
"1 - Visa datum för denna månad" & vbcr & _
"2 - Visa datum för nästa månad" & vbcr & _
"3 - lägga till ett datum och namn i listan" & vbCr & _
"4 - ta bort ett datum och namn från din lista" & vbcr & vbcr & _
"Ange numret på ditt val."

"InputBox resultat
Fråga = InputBox(message,Notice)
' Kontrollera om Null eller tomma inputbox sedan avbryter
OM IsEmpty(Question) sedan
WScript.quit()

ELSEIF Len(Question) = 0 då
WScript.quit()

ELSEIF fråga = 0 då
WScript.quit()

ANNAT
Välj ärende fråga
Fall 1 Run(1)
Fall 2 Run(2)
Fall 3 Run(3)
Fall 4 Run(4)
END SELECT

SLUT OM

"Case uttalanden för resultatet
Sub Run(var)
Ställa in WS = CreateObject("WScript.shell")

' Januari
"Detta kontrollerar om aktuella månaden är december besluta vilket semester datum att använda
OM Month(date) = "12" då
Hol (0) = "01/01 /" & Right(DateSerial(Year(Date)+1,1,1),4) & "New Year's Day"
Hol(1) = "0" & DateSerial(Year(Date)+1,1,22) - Weekday(DateSerial(Year(Date)+1,1,22),3) & "MLK dag"
ANNAT
Hol (0) = "01/01 /" & Right(DateSerial(Year(Date),1,1),4) & "New Year's Day"
Hol(1) = "0" & DateSerial(Year(Date),1,22) - Weekday(DateSerial(Year(Date),1,22),3) & "MLK dag"
SLUT OM

"Februari
Hol(2) = "02/14 /" & Year(Date) & "Alla hjärtans dag"
Hol(3) = "0" & DateSerial(Year(Date),3,1) - Weekday(DateSerial(Year(Date),3,1),3) - 7 & "presidentens dag"

"Kan
Hol(4) = "0" & DateSerial(Year(Date),6,1) - Weekday(DateSerial(Year(Date),6,1),3) & "Memorial Day"

"Juli
Hol(5) = "07/04 /" & Year(Date) & "Independence Day"

"September
Hol(6) = "09/0" & Mid(DateSerial(Year(Date),9,8) - Weekday(DateSerial(Year(Date),9,8),3),3,1) & "/" & Year(Date) & "Labor Day"

"Oktober
Hol(7) = DateSerial(Year(Date),10,15) - Weekday(DateSerial(Year(Date),10,15),3) & "Columbus Day"

"November
Hol(8) = DateSerial(Year(Date),11,11) & "Veterans' Day"
Hol(9) = DateSerial(Year(Date),11,29) - Weekday(DateSerial(Year(Date),11,29),6) & "Thanksgiving Day"

"December
Hol(10) = DateSerial(Year(Date),12,25) & "Christmas Day"
Hol(11) = DateSerial(Year(Date),12,31) & "New Year's Eve"

Välj mål var
Fall 1' Visa aktuell månad

Ange objRegEx = CreateObject("VBScript.RegExp")
DateSearch = Right(String(2,"0") & Month(Date), 2)
objRegEx.Pattern = "^" & DateSearch

Ange objFile = fso. OpenTextFile (filnamn, ForReading)
Ange arrLines = CreateObject("System.Collections.ArrayList")

Inte förrän objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Ange colMatches = objRegEx.Execute(strSearchString)
IF colMatches.Count > 0 då
För varje strMatch i colMatches
arrLines.Add(strSearchString)
Nästa

SLUT OM

Loop

"Filter, Lägg till & Sortera helgdagar för kalendermånad
För i = 0 till 11
Ange colMatches = objRegEx.Execute(hol(i))
IF colMatches.Count > 0 då
För varje strMatch i colMatches
arrLines.Add(hol(i))

arrLines.sort()

Nästa

SLUT OM

Nästa

"Skriva alla speciella datum till ny fil så veckodag kan läggas
Dim TempFile
tempfile = "c:\Dates.txt"
Ange objFile = FSO. OpenTextFile (TempFile, ForAppending, sant)
objFile.Close

"Gå med matrisen med Line feed
Dim strNewFile: strNewFile = koppling (arrLines.ToArray, vbCrLf)
"Åter öppna filen för läsning
Ange objFile = fso. OpenTextFile (TempFile, ForWriting, falskt)
"Skriv den nya texten
objFile.Write strNewFile
objFile.Close

"Öppna tempfile läsa, lägga till dagen i veckan sedan bort tempfile
Ange objFile = fso. OpenTextFile (TempFile, ForReading)

Inte förrän objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Ange colMatches = objRegEx.Execute(strSearchString)
Om colMatches.Count > 0 då
För varje strMatch i colMatches
"Veckodag visningsnamn för semestrar och AnnvYear med innevarande år
Om året (vänster (strSearchString, InStr (strSearchString,"")-1))=Year(DATE) sedan
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date))) & ":" & strSearchString
"Visa veckodag namn och år räkna
Annat
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date))) & ":" & strSearchString & ":" & DateDiff("y",year(Left(strSearchString,10)),Year(Date)) & "År"
SLUT OM

msg1 = msg1 & strsearchstring & vbcrlf
Nästa

SLUT OM

Loop
objFile.Close

"Skapa kalender för att lägga till i meddelande rutan tack lba
m = Month(date)
y = Year(Date)

w = veckodag (DateSerial (y, m, 1), w1) -1
l = dag (DateSerial (y, m + 1, 0)) + w

"Första raden dag namn
För i = 1 till 7
o = o & "" & WeekdayName (i, True) & ""
Nästa

' Datum nummer
o = o & vbCrLf
För i = 1 till l
d = i - w
OM d < 1 sedan
o = o & "--"
ANNARS om Len(d) = 1 då
o = o & "" & d & ""
ANNAT
o = o & "" & d & ""
SLUT OM
SLUT OM

Om (i-1) Mod 7 = 6 sedan
o = o & vbCrLf
Slut om

Nästa
"Visa resultat
MsgBox Msg1 & vbCrLf & o,,"speciella dagar av" & MonthName(Month(Date)) & "" & Year(Date)

"Ta bort Tempfile
fso. DeleteFile(Tempfile)

Fall 2' Visa nästa månad
Ange objRegEx = CreateObject("VBScript.RegExp")
DateSearch = Right(String(2,"0") & Month(DateAdd("M",1,date)), 2)
objRegEx.Pattern = "^" & DateSearch

Ange objFile = fso. OpenTextFile (filnamn, ForReading)
Ange arrLines = CreateObject("System.Collections.ArrayList")

Inte förrän objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Ange colMatches = objRegEx.Execute(strSearchString)
Om colMatches.Count > 0 då
För varje strMatch i colMatches
arrLines.Add(strSearchString)
Nästa

SLUT OM

Loop

"Filter, Lägg till & Sortera helgdagar för kalendermånad
För i = 0 till 11
Ange colMatches = objRegEx.Execute(hol(i))
Om colMatches.Count > 0 då
För varje strMatch i colMatches
arrLines.Add(hol(i))
arrLines.sort()

Nästa

Slut om

Nästa

"Skriva alla speciella datum till ny fil så veckodag kan läggas
Dim TempFile2
tempfile2 = "c:\Dates.txt"
Ange objFile = FSO. OpenTextFile (TempFile2, ForAppending, sant)
objFile.Close

"Gå med matrisen med Line feed
Dim strNewFile2: strNewFile2 = koppling (arrLines.ToArray, vbCrLf)
"Åter öppna filen för läsning
Ange objFile = fso. OpenTextFile (TempFile2, ForWriting, falskt)
"Skriv den nya texten
objFile.Write strNewFile2
objFile.Close

"Öppna tempfile läsa, lägga till dagen i veckan sedan bort tempfile
Ange objFile = fso. OpenTextFile (TempFile2, ForReading)

Inte förrän objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Ange colMatches = objRegEx.Execute(strSearchString)
Om colMatches.Count > 0 då
För varje strMatch i colMatches
"Display vardag namn för januari semester
Om året (vänster (strSearchString, InStr (strSearchString,"")-1))=DateAdd("Y",1,Year(DATE)) sedan
strSearchString = WeekDayName(WeekDay(DateAdd("yyyy",1,(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (Year(Date))) & ":" & strSearchString
"Aktuell månad är 12, AnnvMonth 01 display vardag och totalt år för nästa år
ElseIf månad (datum) = "12" och Left(strSearchString,2) = "01" och Mid(strSearchString,6,1) = "/" då
strSearchString = WeekDayName(WeekDay(DateAdd("yyyy",1,(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (Year(Date))) & ":" & strSearchString & ":" & DateDiff("y",year(Left(strSearchString,10)),Year(Date)) + 1 & "År"
"Aktuell månad 12, AnnvMonth är 01 utan AnnvYear då diplay korrekt veckodag namn
ElseIf månad (datum) = "12" och Left(strSearchString,2) = "01" och Mid(strSearchString,6,1) = "" sedan
strSearchString = WeekDayName(WeekDay(DateAdd("yyyy",1,(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (Year(Date))) & ":" & strSearchString
"Nuvarande vardag visningsnamnet för Annv datum utan semester eller år
ElseIf år (vänster (strSearchString, InStr (strSearchString,"")-1))=Year(DATE) sedan
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date())) & ":" & strSearchString
"Visa vardag namn och beräkna år
Annat
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date())) & ":" & strSearchString & ":" & DateDiff("y",year(Left(strSearchString,10)),Year(Date)) & "År"
SLUT OM

msg1 = msg1 & strsearchstring & vbcrlf
Nästa

SLUT OM
Loop
objFile.Close

"Skapa kalender för nästa månad för att lägga till i meddelande rutan tack lba
m = Month(DateAdd("M",1,date))
"Om aktuella månaden är december, vill visa nästa månad och år kalender
Om Month(date) = "12" då
Y =Year(DateAdd("YYYY",1,date))
ANNAT
Y = Year(Date)
SLUT OM

w = veckodag (DateSerial (y, m, 1), w1) -1
l = dag (DateSerial (y, m + 1, 0)) + w

"Första raden dag namn
För i = 1 till 7
o = o & "" & WeekdayName (i, True) & ""
Nästa

' Datum
o = o & vbCrLf
För i = 1 till l
d = i - w
Om d < 1 sedan
o = o & "--"
annat om Len(d) = 1 då
o = o & "" & d & ""
Annat
o = o & "" & d & ""
Slut om
Slut om

Om (i-1) Mod 7 = 6 sedan
o = o & vbCrLf
Slut om

Nästa
"Visa resultat
MsgBox Msg1 & vbCrLf & o,,"speciella dagar av" & MonthName(Month(DateAdd("M",1,date))) & "" & Y

"Ta bort Tempfile
fso. DeleteFile(Tempfile2)

Fall 3' Lägg till nytt datum
Meddelande = "Lägg till speciella datum till listan"

Fråga = InputBox ("Ange datum och namn som" & vbCR & vbCR & "MM/DD/ÅÅÅÅ namn ''''" & vbCR & "eller" & vbCR & "MM/DD namn ''''", meddelande)

' Kontrollera om Null eller tomma inputbox sedan avbryter
OM IsEmpty(Question) sedan
WScript.quit()

ELSEIF Len(Question) = 0 då
WScript.quit()

ANNAT
Om (fso. FileExists(FileName)) sedan
Ange objFile = FSO. OpenTextFile (filnamn, ForAppending, sant)
objFile.WriteLine (vbCrLf & fråga)
Annat
Ange objFile = FSO. OpenTextFile (filnamn, ForAppending, sant)
objFile.WriteLine (fråga)

objFile.Close

Slut om

Ange arrLines = CreateObject("System.Collections.ArrayList")
"Öppna filen
Ange objFile = fso. OpenTextFile (filnamn, ForReading, falskt)
' Loopa igenom och lägga till varje rad i matrisen
Inte förrän objFile.AtEndOfStream
strLine = Trim(objFile.ReadLine)
Om Len(strLine) > 0 då
' Kontrollera att matrisen inte redan har posten
Om inte arrLines.Contains(strLine) sedan arrLines.Add(strLine)
Slut om
Loop
objFile.Close
"Sortera (stigande) för estetik
arrLines.Sort()
"Gå med matrisen med vbCrLf (transport tillbaka eller ange)
Dim strNewFile1: strNewFile1 = koppling (arrLines.ToArray, vbCrLf)
"Åter öppna filen för läsning
Ange objFile = fso. OpenTextFile (filnamn, ForWriting, falskt)
"Skriv den nya texten
objFile.Write strNewFile1
objFile.Close

MsgBox "Speciella datum och namn anges", meddelande
SLUT OM

Fall 4' ta bort datum
Ställa in fso = CreateObjectScripting.FileSystemObject("")
Meddelande = "Vilken månad?"
Fråga = InputBox ("Skriv in antalet månaden vill du Visa?" & vbCrLf & vbCrLf & "Enter som ett nummer 1-12", märker)

Ange objRegEx = CreateObject("VBScript.RegExp")
DateSearch = Right(String(2,"0") & fråga, 2)
objRegEx.Pattern = "^" & DateSearch

Ange objFile = fso. OpenTextFile (filnamn, ForReading)
"Hitta datum i listan
Inte förrän objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Ange colMatches = objRegEx.Execute(strSearchString)
Om colMatches.Count > 0 då
För varje strMatch i colMatches
MSG = Msg & "" & strSearchString & vbCrLf
Nästa

Slut om
Loop

objFile.Close

OM Len(Msg) = 0 då
MsgBox "Det finns inga datum i" & MonthName(Question) & "",,"speciella dagar"
Annat
Meddelande = "Skriv datum, namn eller båda skall avlägsnas."
Ange objFile = fso. OpenTextFile (filnamn, ForReading)

"Sätta matrisen in i InputBox
Fråga = InputBox ("The datum och namn är skiftlägeskänslig!" & vbCrLf & "vara specifik desto mindre du skriver desto mer kommer att matchas och tas bort." & vbCrLf & vbCrLf & Msg, meddelande)

' Kontrollera om Inputbox är tom, Avbryt om Tom
OM IsEmpty(Question) sedan
WScript.quit()
ELSEIF Len(Question) = 0 då
WScript.quit()
ANNAT
"Ta bort objekt i fråga
Ange objFile = fso. OpenTextFile (filnamn, ForReading)

Inte förrän objFile.AtEndOfStream
strLine = objFile.ReadLine
Om InStr (strLine, fråga) = 0 då
strNewContents = strNewContents & strLine & vbCrLf
Slut om
Loop
Slut om

objFile.Close

"Skriv om återstående objekt på fil
Ställa in fso = CreateObjectScripting.FileSystemObject("")
Ange objFile = FSO. OpenTextFile (filnamn, ForWriting)
objFile.Write strNewContents
objFile.Close
slut om
END SELECT
End Sub

"Felhantering meddelande
OM Err.Number <> 0 sedan
MsgBox "du angett något felaktigt. Försök igen. ", 0 + 16," Ooopps... "
WScript.quit()
SLUT OM

Se Steg
Relaterade Ämnen

Svarta tavlan halsband

göra din alldeles egna söta, miniatyr chalkboard halsband! När gjort, är din mini-black styrelse redo för alla meddelanden som du väljer! Det gör för en super kul (alla tillfällen) gåva... bara omfatta skriva ditt meddelande, krypa in i ett organza p...

LEGO CNC/3D skrivare/plotter

Hey guys, andra instructable här. Den här gången bestämde jag mig att ha en Lego CNC-maskin. Jag hade ursprungligen planerat detta för makeitreal konkurrens, och jag tänkte att tidsfristen hade inte gått, men tydligen.Hur som helst, jag kommer att up...

VBS datum räknaren App

IntroduktionHar du någonsin undrat vad datum och dag i veckan skulle det i X antal dagar från idag? Hur många dagar det är från idag till framtiden? Vad sägs om antalet dagar mellan två datum?Låt oss titta på några praktiska tillämpningar för en Date...

PWM solar controller och tracker

PWM solar controller och trackerSteg 1: IntroduktionPV-program kunde grupperas enligt schemat för interaktion med verktyg rutnät: rutnät ansluten, fristående och hybrid. PV-system består av en PV generator (cell modul och array), energi lagringsenhet...

Realtid GPS Tracker med integrerad Google Maps

Detta projekt beskrivs hur du kan bygga en mobil realtid GPS tracker med integrerad Google Maps. Jag började detta projekt främst för att se om jag kan integrera alla olika bitar av hårdvara och programvara för att få en fungerande lösning, och det t...

VBS Holiday Countdown

IntroduktionUndrar du vad nästa semester är? Undrar du när nästa semester är? Vore det inte skönt att ha en semester tracker? Något som kommer att berätta den nästa semestern, hur många dagar tills det semester återstående helgdagar på året.Vad vet v...

Bygga en ISS pekaren Tracker med Adafruit HUZZAH ESP8266

Översikt – del 1 Alt/Az pekarenExpanderande på min Stepper Motor controller med Adafruit Huzzah ESP8266 WiFi modul genom att lägga till en liten Servo, skapade jag en mekanisk anordning som kan flytta i Azimut (med en Stepper) och höjd (med en Servo)...

Altoids Tin Pocket datum MoJo Kit

ser ut nu! Något som varje enskild människa måste ha å & i pocket! Om du har någonsin haft chansen för en spontan, sporra av ögonblick datum, du kommer har velat ha denna MoJo kit i fickan redo att gå! Någonsin varit frågade en dag eller sett en pote...

Ändrar Tracker

Jag har beslutat att ge sådan titel efter att ha insett hur förändringar i livet är viktigt. Lyckligtvis, i en värld av elektronik, dessa förändringar kan kvantifieras och kan också användas i styrsystem. Detta instructable kommer att demonstrera hur...

Intro till Excel: bekostnad Tracker

Jag vilja protokollföra min månatliga utgifterna mönster för att få en bra känsla för hur mycket jag spendera i vissa kategorier, om jag går i månatliga underskott, etc. Jag har uppdaterat en anpassad kalkylblad i Microsoft Excel (kalkylbladsprogramm...

Arduino GPS/GSM Tracker (WatchDog aktiverat)

Vad är GPS och GLONASS?En GPS tracking enhet är en enhet, som normalt bärs av ett rörligt fordon eller person, som använder Global Positioning System för att fastställa och följa upp dess exakta läge, och därmed av dess bärare, med mellanrum. Den ins...

Göra en hög höjd ballong Tracker (Arduino)

En av de coolaste projekt jag har gjort så vitt med mina barn är en "nära-space" ballong. Det är inte helt i rymden själv (100 Km +) men så högt som himlen ser svart och du kan börja att se krökning av jorden under dig.Flickr set med bilder från...

Roliga Prank(s) (med VBS)

andra än pannkakor och göra saker som andra människor kan inte, pranking människor är ganska kul. Detta Instructable kombinerar två av de tidigare nämnda sakerna (sorry killar, inga pannkakor). Med en underbar programmering, kan du spela de mest luri...

Göra en VBS-skript som öppnar en massa windows.

Någonsin vill upptåg någon med vad de flesta människor använder idag? En dator! Och naturligtvis du gör eftersom jag inte vet en enda person som inte skulle. Thats varför vi idag kommer att göra en vbs-skript för att öppna en massa fel lådor på en gå...

Göra en vbs skriften att läsa tiden

Hi, vänliga neighborhood Super_Nerd här. Som min första instructable jag kommer att visa hur man gör en enkel vbs-skript som läser tid och datum med narrorator. Du behöver:-en dator som kör Windows 95 eller högre (inte fungerar på Mac-datorer ledsen...

Den ultimata VBS handledning

VBS är en av de mest populära programmeringsspråk på instructables så det kommer säkert bli flera instructable guider på programmering VBS. Men de flesta av dem rusar igenom kommandon och Visa bara det grundläggande sättet att göra dem. De har också...

Datum och valnöt dessert - Persiska sötma till en italiensk/amerikansk jul

igår var jul och jag spenderade den i Italien med min 1/2 1/2 italienska amerikanfamilj.Vår egen familjetraditioner har redan blivit ganska hybrid, så på samma julbordet kan du hitta mycket italienska ANTIPASTO DI CROSTINI & TORTELLINI IN BRODO (kött...

Solar tracker med arduino - från varje dag material

Här solar tracker modellera konstruktion är så enkelt att det finns inget behov av ett fullt utrustat laboratorium för att skapa den. Jag gjorde det faktiskt i mitt kök! Å andra sidan är huvudtanken och mjukvaran så att jag skulle våga använda dem i...

Hur säkra en datum 2

ingen tejp, ingen zip band, bara en flaska. Detta är del 2 av mina andra "kompatibel: hur man säkra ett datum [Redan efter "Hur att säkra ett datum", damen är förmodligen din flickvän nu eller på det sätt *. Nu problemet är att hålla henne...