summaryrefslogtreecommitdiffstats
path: root/knotes/mig_knotes.pl
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit460c52653ab0dcca6f19a4f492ed2c5e4e963ab0 (patch)
tree67208f7c145782a7e90b123b982ca78d88cc2c87 /knotes/mig_knotes.pl
downloadtdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.tar.gz
tdepim-460c52653ab0dcca6f19a4f492ed2c5e4e963ab0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'knotes/mig_knotes.pl')
-rw-r--r--knotes/mig_knotes.pl127
1 files changed, 127 insertions, 0 deletions
diff --git a/knotes/mig_knotes.pl b/knotes/mig_knotes.pl
new file mode 100644
index 000000000..3cce6f9dc
--- /dev/null
+++ b/knotes/mig_knotes.pl
@@ -0,0 +1,127 @@
+#! /usr/bin/perl
+
+# mig_knotes.pl
+# Dieses Programm erzeugt aus einem notes.ics- file (KDE >3)
+# pro Note eine Datei (KDE <3).
+#
+# Der ics- File beinhaltet die Abschnitte "Description" (=Notizen)
+# und "Summary" (=Titel der Note)
+#
+# Es wird pro Note ein file .KNotes *n*_data (Notizen) sowie
+# KNote*n* (Steuerdatei) erzeugt.
+#
+# Das Programm ist "auf die Schnelle" geschrieben.
+# Es ist nicht empfehlenswert -w oder :use_strict einzuschalten.
+#
+# Wer es benutzt und Verbesserungen vornimmt, kann mir freundlicherweise
+# eine Kopie schicken.
+#
+# chaeffne@web.de, Mai 2005
+#
+#
+#
+# Folgende Pfade muessen individuell gesetzt werden:
+
+$imp = "/pfad/zum/importfile/notes.ics"; # Importfile
+$verz = "/pfad/zum/export-verzeichnis/tmp"; # Exportverzeichnis
+$steuerdatei = "/pfad/zu/einer/steuerdatei/KNote"; # KNotes- Steuerdatei KDE <3;
+ # wird als Vorlage fuer
+ # die neuen verwendet.
+####################################
+# Beginn des Programms #############
+####################################
+#
+# 1. Abschnitt
+# In diesem Abschnitt werden die "Descriptions" in notes.ics gezaehlt (=Dateianzahl),
+# die Anfangs- und Endzeile der Description bestimmt, sowie der Titel der
+# Notes (=Summary) extrahiert.
+open (IMP,"$imp");
+$zz = 1; #Zeilenzaehler
+$fc = 1; #Filecounter
+while ($_ = <IMP>){
+
+$all{$zz} = $_; # alle Zeilen in ein assoziatives Array schreiben
+
+ if ($_ =~ /^DESCRIPTION/){ # Nach "Description" am Anfang suchen
+ $anfang{$fc} = $zz; # Anfang: Ein Wertepaearchen aus filecounter und Zeilenzaehler erzeugen
+ }
+ elsif ($_ =~ /^SUMMARY/){ # Nach Summary am Anfang suchen
+ $ende{$fc} = $zz-1; # Ende: Ein Wertepaearchen aus filecounter und Zeilenzaehler erzeugen
+ $ttt = $_; # Titel
+ $ttt =~ s/SUMMARY://;
+ $title{$fc} = $ttt; # Den aktuellen Titel mit dem filecounter assozieren
+ $fc++;
+ }
+$zz++;
+} # Ende 1. Abschnitt
+close(IMP);
+
+# 2. Abschnitt
+#
+# In diesem Abschnitt werden die Files erzeugt und die oben gewonnenen Daten verarbeitet.
+$fc2 = 1; # filecounter2
+while ($fc2 <= $fc) {
+
+ # Datendatei (= Notiz)
+ $filename = "$verz/.KNote ".$fc2."_data";
+ open(EXP,">$filename");
+
+ $zz = 0;
+ $anzahl = $ende{$fc2}-$anfang{$fc2}; # Anzahl der Zeilen
+ while ($zz <= $anzahl) { # fuer alle betroffenen Zeilen durchlaufen
+ $line = $all{$anfang{$fc2}+$zz}; # die aktuelle Zeile
+ $line =~ chop($line); # letztes Zeichen (=new line) abschneiden
+ $line =~ s/DESCRIPTION://; # das Wort rausschneiden
+ @line = split(/\\n/,$line); # die Zeile nach new lines teilen (=Steuerzeichen im ics-file)
+ $anz = @line; # die Anzahl im array
+
+ $zz2 = 1;
+ foreach $nl(@line) { # fuer jeden Wert im Array
+ $nl =~ s/\\t/ /g;# Tabs durch Leerzeichen ersetzen
+ $nl =~ s/\\//g;# \ (als Escape verwendet zB. vor ",;") entfernen
+ # eine neue Zeile?
+ if ( $zz2 < $anz or $anz == 1 ) {
+ print EXP "$nl<br>";
+ }
+ else {
+ print EXP $nl;
+ }
+ $zz2++;
+ }
+
+ $zz++;
+ }
+
+ # Steuerdatei
+ $filename2 = "$verz/KNote ".$fc2;
+ open (IMP2,"$steuerdatei");
+ # eine Beispieldatei, die fuer alle Notes verwendet wird.
+ open(EXP2,">$filename2");
+ while ($_ = <IMP2>) {
+ if ($_ =~ /^name/) {
+ print EXP2 "name=$title{$fc2}\n";
+ }
+ else{
+ print EXP2 $_;
+ }
+ }
+$fc2++;
+} # Ende 2. Abschnitt
+close(EXP);
+close(EXP2);
+close(IMP2);
+# Ende mig_knotes.pl
+
+
+
+
+
+
+
+
+
+
+
+
+
+