[Module] iCalModule.pbi (all OS)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

[Module] iCalModule.pbi (all OS)

Beitrag von Thorsten1867 »

iCal - Module (all OS / 64Bit)

Unterstützung von iCal-Dateien (Import/Export)

Code: Alles auswählen

; iCal::AddEvent()    - adds an event to iCal
; iCal::ClearEvents() - clear all events
; iCal::Create()      - create an iCal entry
; iCal::ExportFile()  - export as iCal file (*.ics)
; iCal::GetEvents()   - get events as linked list (iCal::Event_Structure)
; iCal::ImportFile()  - import an iCal file (*.ics)
; iCal::Remove(ID.i)  - remove the iCal entry
Download: iCalModule.pbi
Zuletzt geändert von Thorsten1867 am 23.11.2019 12:53, insgesamt 1-mal geändert.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

Re: [Module] iCalModule.pbi (all OS)

Beitrag von dige »

Hi Thorsten, vielen Dank für die Lib. Wollte gerade mal testen, da kommen aber leider einige Compilerfehler..

Ciao Dige
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] iCalModule.pbi (all OS)

Beitrag von Thorsten1867 »

Bugfixes: Code & Example
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

Re: [Module] iCalModule.pbi (all OS)

Beitrag von dige »

Hi Thorsten,

dein Beispiel (geändert auf 6.9.2019 20.15) erstellt folgende .ICS Datei

Code: Alles auswählen

BEGIN:VCALENDAR
VERSION:2.0
PRODID:PureBasic
METHOD:PUBLISH
BEGIN:VEVENT
UID:7CC631D0747412487796A2A60D930E37
LOCATION:
SUMMARY:Geburtstag
DESCRIPTION:
CLASS:PUBLIC
DTSTART:20190906T201500Z
DTEND:20190906T201500Z
DTSTAMP:20190905T124620Z
END:VEVENT
END:VCALENDAR
Beim Import in den Kalender wird aus 20.15 allerdings 22.15 weil vermutlich Zeitzonenangaben fehlen.
Ich habe die Zeit auf 20.15 geändert und den Termin exportiert. Dann sieht der wie folgt aus:

Code: Alles auswählen

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010325T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20190905T104849Z
DTEND;TZID="W. Europe Standard Time":20190906T201500
DTSTAMP:20190905T124620Z
DTSTART;TZID="W. Europe Standard Time":20190906T201500
LAST-MODIFIED:20190905T104849Z
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=de:Geburtstag
TRANSP:OPAQUE
UID:7CC631D0747412487796A2A60D930E37
X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//E
	N">\n<HTML>\n<HEAD>\n<META HTTP-EQUIV="Content-Type" CONTENT="text/html\; 
	charset=Windows-1252">\n<META NAME="Generator" CONTENT="MS Exchange Server
	 version 14.01.0438.000">\n<TITLE>Geburtstag</TITLE>\n</HEAD>\n<BODY>\n<!-
	- Converted from text/plain format -->\n\n</BODY>\n</HTML>
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MS-OLK-AUTOFILLLOCATION:TRUE
END:VEVENT
END:VCALENDAR
magst du das noch anpassen? :)

Ciao Dige
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] iCalModule.pbi (all OS)

Beitrag von Thorsten1867 »

Habe über das Outlook-Problem etwas im Internet gefunden.

Bitte teste mal, ob es jetzt funktioniert. Habe selber kein Outlook.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

Re: [Module] iCalModule.pbi (all OS)

Beitrag von dige »

Jetzt geht es - Danke! :allright:
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

Re: [Module] iCalModule.pbi (all OS)

Beitrag von dige »

Noch ein Tipp: Texte müssen formatiert werden, maximale Länge pro Zeile 75 Zeichen + #CRLF$
und bestimmte Zeichen müssen codiert werden: Zeilenumbruch: \n Komma: \, Semikolion: \;

Code: Alles auswählen

  Procedure.s Format_Text (txt.s)
    Protected n, l, result.s
    
    txt = ReplaceString(txt, "," , "\,")
    txt = ReplaceString(txt, ";" , "\;")
    txt = ReplaceString(txt, #CRLF$ , "\n")
    
    l = Len(txt)
    n = 1
    
    If l > 75
    
      Repeat
        result + Mid(txt, n, 75)
        
        If n <= (l - 75)
          result + #CRLF$ + #TAB$
        EndIf
        
        n + 75
      Until n > l
      
    Else
      
      result = txt
    EndIf  
    
    
    ProcedureReturn result
  EndProcedure
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] iCalModule.pbi (all OS)

Beitrag von Thorsten1867 »

Leider konnte ich über das maskieren von Sonderzeichen bei iCal nichts finden.
Ich aber deine Routine etwas angepasst und wandele die Zeichen beim Import & Export entsprechend um.

Bitte teste mal, ob ich Outlook damit glücklich machen kann.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
dige
Beiträge: 1182
Registriert: 08.09.2004 08:53

Re: [Module] iCalModule.pbi (all OS)

Beitrag von dige »

Thorsten1867 hat geschrieben:Leider konnte ich über das maskieren von Sonderzeichen bei iCal nichts finden.
Ich aber deine Routine etwas angepasst und wandele die Zeichen beim Import & Export entsprechend um.

Bitte teste mal, ob ich Outlook damit glücklich machen kann.
Outlook importiert nur die erst 74 Zeichen, der Rest fehlt. Vermutlich muss du CRLF als Zeilenumbruch verwenden
und die neue Zeile mit einem TAB beginnen..
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] iCalModule.pbi (all OS)

Beitrag von Thorsten1867 »

Neuer Versuch!
Hoffentlich machen MacOS & Linux keinen Ärger mit #CRLF$.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten