Pagina 1 van 1

Calender koppelen aan een vb.net programma

Geplaatst: 7 november 2016, 19:27
door glda19
Hi
weet iemand of het mogelijk zou zijn via vb.net code de gegevens uit te lezen.

Re: Calender koppelen aan een vb.net programma

Geplaatst: 8 november 2016, 0:01
door nirwana
Ik zou dit dan eerder via een standaard-formaat laten verlopen, bijvoorbeeld het ICS-formaat.
Volgens mij kan Calender / Lightning naar dit formaat exporteren. En voor .Net zijn er dan weer libraries waarmee je een ICS-bestand kunt inlezen, bijvoorbeeld https://github.com/der-Daniel/ical.NET

Dat voorbeeld is dan voor C#, maar dat gooi ik voor het gemak op 1 hoop met VB.Net.
Het valt immers allemaal onder .Net en met beide programmeertalen kun je vrijwel hetzelfde.

Hier vindt je ook diverse libraries die ICS-bestanden kunnen parsen: https://www.nuget.org/packages?q=ics

Daar zou ik eens wat mee gaan exporteren als je hiermee wilt beginnen.
Als je met programmeren begint, dan zou ik direct met C# beginnen. Dit is niet veel moeilijker dan VB.Net en je kunt er wel meer mee. Zo is er bijvoorbeeld meer voorbeeldcode in C# beschikbaar. Dit is mijn eigen ervaring (ik kom uit het Visual Basic 6-tijdperk en via VB.Net programmeer ik nu vooral in C#).

Re: Calender koppelen aan een vb.net programma

Geplaatst: 8 november 2016, 0:13
door glda19
Waarom naar c#
En waar vind ik daar uitleg over en wat kun je meer

Re: Calender koppelen aan een vb.net programma

Geplaatst: 8 november 2016, 0:19
door glda19
Het is wel de bedoeling direct die file uit te lezen e" niet via een tussen stap

Re: Calender koppelen aan een vb.net programma

Geplaatst: 8 november 2016, 15:52
door nirwana
Ik heb het niet over een tussenstap, maar over het gebruik van een "library", dus een functie-bibliotheek om het programmeren makkelijker te maken. Dat is een objectmodel dat je kunt gebruiken om beter / sneller / efficiƫnter zo'n bestand in te lezen, omdat deze library de structuur van zo'n bestand al kent.

Als je liever in VB.Net programmeert dan vind ik dat natuurlijk prima.
Voordeel van VB.Net is dat het niet case-sensitive is, dus er wordt geen verschil gemaakt tussen hoofd- en kleine letters.

Re: Calender koppelen aan een vb.net programma

Geplaatst: 8 november 2016, 16:26
door nirwana
In Mozilla Lighting (Calendar zo je wilt) heb ik als test 1 gebeurtenis (EVENT) en een taak (TODO) aangemaakt.
Dat heb ik vervolgens geƫxporteerd naar een ICS-bestand en dan is dit het resultaat:

Code: Selecteer alles

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20161108T143615Z
LAST-MODIFIED:20161108T143637Z
DTSTAMP:20161108T143637Z
UID:79e6d901-8635-490e-b18c-4954bdb027c6
SUMMARY:Nieuw event
DTSTART;VALUE=DATE:20161108
DTEND;VALUE=DATE:20161109
TRANSP:TRANSPARENT
DESCRIPTION:Test 
END:VEVENT
BEGIN:VTODO
CREATED:20161108T143644Z
LAST-MODIFIED:20161108T143703Z
DTSTAMP:20161108T143703Z
UID:78f7a3a1-c2dc-45a0-aabc-30868a9b907c
SUMMARY:Nieuwe taak
DTSTART;TZID=Europe/Berlin:20161108T160000
DUE;TZID=Europe/Berlin:20161108T170000
END:VTODO
END:VCALENDAR
In deze brij zitten dan 2 "events" verstopt (of eigenlijk 1 EVENT en 1 TODO).

Veel plezier om dit allemaal te gaan parsen in iets leesbaars / begrijpbaars...

Re: Calender koppelen aan een vb.net programma

Geplaatst: 8 november 2016, 16:29
door nirwana
Daarom zijn er libraries uitgevonden. Daarmee heb ik bijvoorbeeld dit stukje code gemaakt:

Code: Selecteer alles

            var calendarCollection = Calendar.LoadFromFile(@"c:\home\Algemeen.ics");

            var firstCalendar = calendarCollection.First();

            foreach (var oEvent in firstCalendar.Events)
            {
                Console.WriteLine(oEvent.Start.ToString());
                Console.WriteLine(oEvent.Summary);
            }

            foreach (var oTodo in firstCalendar.Todos)
            {
                Console.WriteLine(oTodo.Start.ToString());
                Console.WriteLine(oTodo.Summary);
            }
Naar aanleiding van dit code-voorbeeld: https://github.com/rianjs/ical.net/wiki ... n-ics-file
In dit ICS-bestand heb ik maar 1 Event en 1 Todo, dus de foreach is een beetje overkill. Maar dit geeft jou vast wel een idee hoe je dit dan kunt gebruiken.

PS: de library heb ik aan het project in Visual Studio toegevoegd via NuGet: https://www.nuget.org/packages/Ical.Net:

Code: Selecteer alles

Install-Package Ical.Net -Version 2.2.19