1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#Konvertiere Mailadressenliste aus Outlook in Pegasus
#-----------------------------------------------------
# (Nur Vorname, Nachname und Emailadresse, aber leicht erweiterbar.)
# Outlook-Adressbuch wurden in die Datei kontakte.csv exportiert.
# Der Output wird in die Pegasus-Adressbücher a.pm! und a.pmr geschrieben.
# Diese müssen dann über ein schon existierendes Adressbuch kopiert werden.
# (Falls nicht vorhanden, vorher ein Dummy-Adressbuch in Pegasus anlegen.)
vorname=1
nachname=3
emailadresse=55
VORNAME=0
NACHNAME=1
EMAIL=2
list=Array.new
@c=0
@zeros="#"
#@zeros[0]=0
def writeword(buf,size,word)
buf1=word
buf2=@zeros*(size-buf1.size())
buf1+=buf2
buf+=buf1
#if (@c==1); print buf1.size()," ",buf1; STDIN.gets; end
buf
end
#Lese alle Mailadressen
File.open("kontakte.csv","r") do |ifi|
k1=0
while (!ifi.eof)
s=ifi.gets.split(/;/)
rec=Array.new
rec[VORNAME]=s[vorname]
rec[NACHNAME]=s[nachname]
rec[EMAIL]=s[emailadresse]
print rec[VORNAME]," ",rec[NACHNAME],"\n"
#STDIN.gets
list<<rec
k1+=1
end end
#Schreibe pmr-File
#a. Schreibe Header
buf_pmr=""
buf_pmi=""
buf_pmr=writeword(buf_pmr,130,"all")
#b. Schreibe Listen-Eintraege
k=0
list.each{|x|
n=""
n=x[VORNAME]+" "+x[NACHNAME]
puts n
buf_pmr=writeword(buf_pmr,340,n)
#print buf_pmr.size()," ",buf_pmr
buf_pmr=writeword(buf_pmr,458-340,x[EMAIL])
buf1=0.chr*16
buf1[14]=(k%256).chr
buf1[13]=((k/256).to_i).chr
buf_pmi+=buf1
#if (k==10); puts buf1[14..14]
#@c=1; STDIN.gets; end
buf_pmi=writeword(buf_pmi,48,n)
#if (k==10); puts buf_pmi.size();
#File.open("log3.txt","w") do |ofi| ofi.print buf_pmi; end
#@c=1; STDIN.gets; end
k+=1
}
buf_pmr.gsub!(/#/,0.chr)
buf_pmi.gsub!(/#/,0.chr)
File.open("a.pmr","wb") do |ofi| ofi.print buf_pmr; end
File.open("a.pm!","wb") do |ofi| ofi.print buf_pmi; end |