VBS speciale datum Tracker (6 / 8 stap)

Stap 6: De Code


1) de toepassing Kladblok opent:
Klik op Start = > Klik op programma's = > Bureau-accessoires = > Kladblok Klik
Of
Klik op Start = > Klik op ## Run = > Type Kladblok in het invoer vak uitvoeren en klik op OK.
2) Kopieer de code hieronder de apostrof en sterretjes lijn plak deze in Kladblok.

' *********************************************
Dim aankondiging
Dim bericht
Dim fso
Dim objFile
Dim arrLines
Dim arrList
Dim bestandsnaam
Dim Hol(12)

Set fso = CreateObject("Scripting.FileSystemObject")

FileName = "c:\MySpecialDates.txt"

Const ForReading = 1
Const ForWriting = 2 ' zal over schrijven alles
Const ForAppending = 8 ' zal maken of bestand toevoegen

' deze code zal het gegevensbestand maken
Als (fso. FileExists(FileName)) = False Then
set objFile = FSO. OpenTextFile (FileName, ForAppending, True)

objFile.Close

Eind als

' Error Handling
On Error Resume Next

' Standaard Inputbox
Notice = "Mijn speciale datums - vandaag is" & WeekDayNAme(WeekDay(Date)) & "" & datum
Message = "Wat wilt u doen?" & vbcr & vbcr & _
"1 - view data voor deze maand" & vbcr & _
"2 - view data voor volgende maand" & vbcr & _
"3 - een datum en de naam aan uw lijst toevoegen" & vbCr & _
"4 - de naam en een datum uit uw lijst verwijderen" & vbcr & vbcr & _
"Het nummer van uw keuze."

' InputBox resultaten
Vraag = InputBox(message,Notice)
' Controleren op Null of leeg inputbox vervolgens annuleert
Als IsEmpty(Question) dan
WScript.quit()

ELSEIF Len(Question) = 0 THEN
WScript.quit()

ELSEIF vraag = 0 THEN
WScript.quit()

ANDERS
Selecteer geval vraag
Geval 1 Run(1)
Geval 2 Run(2)
Geval 3 Run(3)
Zaak 4 Run(4)
EINDE SELECTEREN

END IF

' Zaak verklaringen voor resultaat
Sub Run(var)
Instellen van WS = CreateObject("WScript.shell")

' Januari
' Dit controleert of huidige maand Dec om te beslissen welke datum vakantie te gebruiken
IF month(datum) = "12" then
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 Day"
ANDERS
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 Day"
END IF

' Februari
Hol(2) = "02/14 /" & Year(Date) & "Valentine's Day"
Hol(3) = "0" & DateSerial(Year(Date),3,1) - Weekday(DateSerial(Year(Date),3,1),3) - 7 & "President's Day"

' 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"

Select Case var
Kast 1' lopende maand weergeven

Set objRegEx = CreateObject("VBScript.RegExp")
DateSearch = Right(String(2,"0") & month(datum), 2)
objRegEx.Pattern = "^" & DateSearch

Set objFile = fso. OpenTextFile (FileName, ForReading)
Set arrLines = CreateObject("System.Collections.ArrayList")

Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
IF colMatches.Count > 0 Then
Voor elke strMatch in colMatches
arrLines.Add(strSearchString)
Volgende

END IF

Loop

' Filter, Voeg & soort vakantie voor kalender maand
Voor i = 0 tot en met 11
Set colMatches = objRegEx.Execute(hol(i))
IF colMatches.Count > 0 Then
Voor elke strMatch in colMatches
arrLines.Add(hol(i))

arrLines.sort()

Volgende

END IF

Volgende

' Schrijven van alle speciale datums naar nieuw bestand, zodat de dag van de week kan worden toegevoegd
Dim TempFile
tempfile = "c:\Dates.txt"
set objFile = FSO. OpenTextFile (TempFile, ForAppending, True)
objFile.Close

' Lid van de matrix met regelinvoer
Dim strNewFile: strNewFile = Join (arrLines.ToArray, vbCrLf)
' Opnieuw het bestand openen voor lezen
Set objFile = fso. OpenTextFile (TempFile, ForWriting, False)
' Schrijf de nieuwe tekst
objFile.Write strNewFile
objFile.Close

' Open tempfile lezen, toevoegen van dag van de week dan tempfile verwijderen
Set objFile = fso. OpenTextFile (TempFile, ForReading)

Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
Als colMatches.Count > 0 Then
Voor elke strMatch in colMatches
' Weergavenaam van de weekdag voor vakanties en AnnvYear met het huidige jaar
Als jaar (linker (strSearchString, InStr (strSearchString,"")-1))=Year(DATE) dan
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date))) & ":" & strSearchString
' De weergavenaam van de weekdag en jaar tellen
Anders
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date))) & ":" & strSearchString & ":" & DateDiff("y",year(Left(strSearchString,10)),Year(Date)) & "Years"
END IF

msg1 = msg1 & strsearchstring & vbcrlf
Volgende

END IF

Loop
objFile.Close

' Agenda toevoegen aan bericht vak Bedankt lba maken
m = month(datum)
y = Year(Date)

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

' Eerste lijn namen van dagen
Voor i = 1 tot en met 7
o = o & "" & WeekdayName (i, True) & ""
Volgende

' Datum van getallen
o = o & vbCrLf
Voor i = 1 tot en met l
d = ik - w
Als d < 1 dan
o = o & "--"
ELSE IF Len(d) = 1 then
o = o & "" & d & ""
ANDERS
o = o & "" & d & ""
END IF
END IF

Als (i-1) Mod 7 = 6 dan
o = o & vbCrLf
End If

Volgende
' Resultaten weergeven
MsgBox Msg1 & vbCrLf & o,,"speciale dagen van" & MonthName(Month(Date)) & "" & Year(Date)

' Tempfile verwijderen
fso. DeleteFile(Tempfile)

Zaak 2' Bekijk volgende maand
Set objRegEx = CreateObject("VBScript.RegExp")
DateSearch = Right(String(2,"0") & Month(DateAdd("M",1,date)), 2)
objRegEx.Pattern = "^" & DateSearch

Set objFile = fso. OpenTextFile (FileName, ForReading)
Set arrLines = CreateObject("System.Collections.ArrayList")

Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
Als colMatches.Count > 0 Then
Voor elke strMatch in colMatches
arrLines.Add(strSearchString)
Volgende

END IF

Loop

' Filter, Voeg & soort vakantie voor kalender maand
Voor i = 0 tot en met 11
Set colMatches = objRegEx.Execute(hol(i))
Als colMatches.Count > 0 Then
Voor elke strMatch in colMatches
arrLines.Add(hol(i))
arrLines.sort()

Volgende

Eind als

Volgende

' Schrijven van alle speciale datums naar nieuw bestand, zodat de dag van de week kan worden toegevoegd
Dim TempFile2
tempfile2 = "c:\Dates.txt"
set objFile = FSO. OpenTextFile (TempFile2, ForAppending, True)
objFile.Close

' Lid van de matrix met regelinvoer
Dim strNewFile2: strNewFile2 = Join (arrLines.ToArray, vbCrLf)
' Opnieuw het bestand openen voor lezen
Set objFile = fso. OpenTextFile (TempFile2, ForWriting, False)
' Schrijf de nieuwe tekst
objFile.Write strNewFile2
objFile.Close

' Open tempfile lezen, toevoegen van dag van de week dan tempfile verwijderen
Set objFile = fso. OpenTextFile (TempFile2, ForReading)

Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
Als colMatches.Count > 0 Then
Voor elke strMatch in colMatches
"Weekdag weergavenaam voor januari vakantie
Als jaar (linker (strSearchString, InStr (strSearchString,"")-1))=DateAdd("Y",1,Year(DATE)) dan
strSearchString = WeekDayName(WeekDay(DateAdd("yyyy",1,(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (Year(Date))) & ":" & strSearchString
' Huidige maand is 12, AnnvMonth 01 display weekdag en totale jaar voor volgend jaar
ElseIf maand (datum) = "12" en Left(strSearchString,2) = "01" And Mid(strSearchString,6,1) = "/" dan
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 & "Years"
' Huidige maand is 12, AnnvMonth 01 zonder AnnvYear dan diplay juiste weekdag naam
ElseIf maand (datum) = "12" en Left(strSearchString,2) = "01" And Mid(strSearchString,6,1) = "" dan
strSearchString = WeekDayName(WeekDay(DateAdd("yyyy",1,(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (Year(Date))) & ":" & strSearchString
' Huidige weekdag weergavenaam voor Annv datum zonder jaar of vakantie
Elseif jaar (linker (strSearchString, InStr (strSearchString,"")-1))=Year(DATE) dan
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date())) & ":" & strSearchString
' De naam van de weekdag weergeven en berekenen van jaar
Anders
strSearchString = WeekDayName(WeekDay(mid(strSearchString,1,2) & "/" & Mid(strSearchString,4,2) & "/" & (year(Date())) & ":" & strSearchString & ":" & DateDiff("y",year(Left(strSearchString,10)),Year(Date)) & "Years"
END IF

msg1 = msg1 & strsearchstring & vbcrlf
Volgende

END IF
Loop
objFile.Close

' Agenda voor volgende maand toevoegen aan bericht vak Bedankt lba maken
m = Month(DateAdd("M",1,date))
"Als huidige maand Dec, wilt weergeven van de volgende maand- en jaarkalender
Als month(datum) = "12" then
Y =Year(DateAdd("YYYY",1,date))
ANDERS
Y = Year(Date)
END IF

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

' Eerste lijn namen van dagen
Voor i = 1 tot en met 7
o = o & "" & WeekdayName (i, True) & ""
Volgende

' Datum
o = o & vbCrLf
Voor i = 1 tot en met l
d = ik - w
Als d < 1 dan
o = o & "--"
anders als Len(d) = 1 then
o = o & "" & d & ""
Anders
o = o & "" & d & ""
Eind als
End If

Als (i-1) Mod 7 = 6 dan
o = o & vbCrLf
End If

Volgende
' Resultaten weergeven
MsgBox Msg1 & vbCrLf & o,,"speciale dagen van" & MonthName(Month(DateAdd("M",1,date))) & "" & Y

' Tempfile verwijderen
fso. DeleteFile(Tempfile2)

Geval 3' toevoegen nieuwe datum
Notice = "Speciale datum toevoegen aan lijst"

Vraag = InputBox ("Enter datum en naam als" & vbCR & vbCR & "MM/DD/JJJJ naam ''''" & vbCR & "of" & vbCR & "MM/DD naam ''''", bericht)

' Controleren op Null of leeg inputbox vervolgens annuleert
Als IsEmpty(Question) dan
WScript.quit()

ELSEIF Len(Question) = 0 THEN
WScript.quit()

ANDERS
Als (fso. FileExists(FileName)) dan
set objFile = FSO. OpenTextFile (FileName, ForAppending, True)
objFile.WriteLine (vbCrLf & vraag)
Anders
set objFile = FSO. OpenTextFile (FileName, ForAppending, True)
objFile.WriteLine (vraag)

objFile.Close

Eind als

Set arrLines = CreateObject("System.Collections.ArrayList")
' Open het bestand
Set objFile = fso. OpenTextFile (FileName, ForReading, False)
' Thru b-l-lus en elke regel toevoegen aan de matrix
Do Until objFile.AtEndOfStream
strLine = Trim(objFile.ReadLine)
Als Len(strLine) > 0 Then
' Controleer of die array niet al het item
Als niet arrLines.Contains(strLine) dan arrLines.Add(strLine)
Eind als
Loop
objFile.Close
' Sorteren (oplopende) voor esthetica
arrLines.Sort()
' Lid van de matrix met vbCrLf (vervoer terug of voer)
Dim strNewFile1: strNewFile1 = Join (arrLines.ToArray, vbCrLf)
' Opnieuw het bestand openen voor lezen
Set objFile = fso. OpenTextFile (FileName, ForWriting, False)
' Schrijf de nieuwe tekst
objFile.Write strNewFile1
objFile.Close

MsgBox "Speciale datum en naam ingevoerd", bericht
END IF

Verwijder datum Case 4'
Set fso = CreateObject("Scripting.FileSystemObject")
Notice = "Welke maand?"
Vraag = InputBox ("Typ het nummer van de maand wilt u bekijken?" & vbCrLf & vbCrLf & "Enter als een nummer 1-12", merk)

Set objRegEx = CreateObject("VBScript.RegExp")
DateSearch = Right(String(2,"0") & vraag, 2)
objRegEx.Pattern = "^" & DateSearch

Set objFile = fso. OpenTextFile (FileName, ForReading)
' De datums in de lijst zoeken
Do Until objFile.AtEndOfStream
strSearchString = objFile.ReadLine
Set colMatches = objRegEx.Execute(strSearchString)
Als colMatches.Count > 0 Then
Voor elke strMatch in colMatches
Msg Msg = & "" & strSearchString & vbCrLf
Volgende

End If
Loop

objFile.Close

IF Len(Msg) = 0 THEN
MsgBox "Er zijn geen data in" & MonthName(Question) & "",,"speciale Days"
Anders
Notice = "Typt u de datum, naam of beide moet worden verwijderd."
Set objFile = fso. OpenTextFile (FileName, ForReading)

' Zet de matrix in in InputBox
Vraag = InputBox ("de datum en naam zijn Case Sensitive!" & vbCrLf & "specifieker hoe minder u typt het meer zal worden afgestemd en verwijderd." & vbCrLf & vbCrLf & Msg, aankondiging)

' Controleer of Inputbox leeg is, annuleren indien leeg
Als IsEmpty(Question) dan
WScript.quit()
ELSEIF Len(Question) = 0 THEN
WScript.quit()
ANDERS
' Betrokken Item verwijderen
Set objFile = fso. OpenTextFile (FileName, ForReading)

Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
Als InStr (strLine, vraag) = 0 Then
strNewContents = strNewContents & strLine & vbCrLf
End If
Loop
Eind als

objFile.Close

' Overige items naar het bestand te herschrijven
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFile = FSO. OpenTextFile (FileName, ForWriting)
objFile.Write strNewContents
objFile.Close
eind als
EINDE SELECTEREN
End Sub

' Error message handling
IF Err.Number <> 0 dan
MsgBox "u iets verkeerd ingevoerd. &Opnieuw. ", 0 + 16," Ooopps... "
WScript.quit()
END IF

Gerelateerde Artikelen

De ultieme VBS Tutorial

De ultieme VBS Tutorial

VBS is een van de populairste programmeertalen op instructables, dus er zal zeker verscheidene instructable gidsen over het programmeren van VBS. Echter de meeste van hen haasten via opdrachten en Toon enkel de eenvoudige manier om ze te doen. Ze heb
Hoe datum nacht make-up

Hoe datum nacht make-up

hebt u ooit geprobeerd zetten op make-up voor een speciale gelegenheid en het uiteindelijk uit op een ramp? zo ja, zal deze eenvoudige instructies u helpen begrijpen de basisprincipes van de toepassing van make-up, of u nu een mooie datum of gewoon e
Kat-Tracking Catdoor

Kat-Tracking Catdoor

Met deze speciale kat-tracking-catdoor weet u precies wanneer uw kat huis of niet is.Op een 3D afgedrukt en lasercutted paneel ziet u precies die katten, en die katten niet.We gaan om te controleren de katten wanneer ze lopen via de catdoor, met behu
Craft DIY ideeën: Hoe maak je een eenvoudige DIY papier Gift Bag

Craft DIY ideeën: Hoe maak je een eenvoudige DIY papier Gift Bag

Zo voor al mijn mooie aanhangers breng ik de meest eenvoudige van alle DIY papier ambachtelijke ideeën. Met mij, deze tijd kunt uleren hoe te maken van een verbazingwekkend eenvoudig DIY papier Gift Bag die u gebruiken kunt voor het verfraaien van uw
Bubble Wrap kalender

Bubble Wrap kalender

dit instructable zal u tonen hoe te maken van een bubble wrap agenda, met een zeepbel tot pop voor elke dag van het jaar. Briljant leuk, maar kan die u weerstaan krijgen voor jezelf? Maakt een ideaal cadeau voor elke verslaafde zeepbel.Stap 1: Wat mo
Hoe maak je een vintage 1940 stijl gastenboek over een begroting voor uw bruiloft!

Hoe maak je een vintage 1940 stijl gastenboek over een begroting voor uw bruiloft!

Toen ik begon aan mijn bruiloft plannen, niets beter gekund voor mij vervolgens toe te voegen mijn favoriete decennium aan de speciale datum.  Na een huwelijk die is gemaakt met een opflakkering van de jaren 1940... Ik kon het niet helpen, maar houde
Ghost photography

Ghost photography

Halloween is die speciale datum wanneer wij vrije teugel geven in onze verbeelding van de meest schattige aan de sombere en daarom wij aanbidden Halloween.Dit project gaat over een klassieker van het paranormale onderzoek Ghost Photography, in dit ge
Wekker met bedrading (of Arduino)

Wekker met bedrading (of Arduino)

Dit is een wekker gebouwd op de bedrading van de microcontroller en aangepast voor Colombia (het feestdagen rekening en toont alle teksten in het Spaans). De wekker geeft uur, datum, Maanstand, aangepaste berichten per dag, evenals de pictogrammen aa
Pagina-a-dag fotokalender

Pagina-a-dag fotokalender

Dit is hoe te maken van een fotokalender van full-color pagina-a-dag, waar sprake is van één foto per pagina, voor elke dag van het jaar, met de pagina's nageleefd samen aan de bovenkant, zodat elke dag van de vorige dag blad kan worden geschild/gesc
Mocha CupCake

Mocha CupCake

Valentine's day on June 12 ?Ja, in Brazilië, de Dia dos Namorados (brandt. "Lovers' Day", of "vriendjes / vriendinnen dag")wordt gevierd op 12 juni, waarschijnlijk omdat het de dag vóór de Festa Junina(Sint Antonius van dag), er bekend
Eulers Pi Day Date

Eulers Pi Day Date

dit is een datum met name voor alle de ingenieurs (maar ook andere geeks) die wenst op te nemen van de wiskundige schoonheid van Eulers vergelijking in hun liefde leven.  Voor degenen onder u die niet vertrouwd met Eulers vergelijking is e verheven t
Het gebruik van de Iridium om haar te zeggen "Ja!" dit Valentine's Day

Het gebruik van de Iridium om haar te zeggen "Ja!" dit Valentine's Day

Stel je voor dit gesprek:"We waren uit wandelen, net na de zonsondergang, en zaten op een bankje te kijken naar de sterren.  Het was een mooie avond.  Na een tijdje zei hij 'Ik vraag me af als we vallende sterren vanavond zullen zien.'  Toen vroeg hi
Schoolbord ketting

Schoolbord ketting

maken uw zeer eigen zoete, miniatuur schoolbord ketting!  Eenmaal gemaakt, is je tot board klaar voor elk bericht van uw keuze!  Het maakt voor een super leuk (elke gelegenheid) cadeau... net omvatten schrijf uw bericht, het nestelen in een organza z
Decoratieve Acyrlic Keychains

Decoratieve Acyrlic Keychains

deze sleutelhangers kunnen grote cadeaus voor individuen of groepen.  Zij kunnen als persoonlijke stukken of souvenirs worden gegeven.Vereist:2 verschillende kleuren van acryl.  Hoe groter het contrast, hoe beter ze eruitzien.Acryl cement... Weld-on