Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Fritzbox Telefonbuch - XML-Importdatei aus Excel erstellen

Mitglied: PeterleB

PeterleB (Level 1) - Jetzt verbinden

06.10.2019, aktualisiert 24.10.2019, 4043 Aufrufe, 23 Kommentare

Das Thema geistert schon seit Jahren durch verschiedene Foren.
Habe mich jetzt mal damit etwas intensiver befasst und hoffe, niemanden damit zu langweilen.

Also: Eine Excel-Datei mit 5 Spalten erstellen.

Z. Bsp

Name (realName) Telefon privat (home) Telefon geschäftlich (work) Telefon mobil (mobile) Fax (fax_work)


Die Spalten sollten als Text formatiert sein, dann lassen sich die die Telefonnummern besser eingeben (führende Null oder Pluszeichen).
Eine Formatierung bzw. Validierung der Nummern soll auch noch eingebaut werden.
Über Entwicklertools ein neues Makro anlegen und folgenden Code einfügen:

Wenn man die erstellte XML-Datei in der Fritzbox zur Wiederherstellung des Telefonbuches benutzt, ergänzt die FB-Software selbst fehlende Bezeichner und Tags.
Achtung! Das vorhandene Telefonbuch wird immer überschrieben.

Nächster Schritt im Code wird das Ausfiltern leerer Zellen und Überlegungen zu weiteren sinnvollen Tags.
Und auch ein Import einer FB-Sicherungsdatei des Telefonbuches ist mittelfristig geplant.

Viel Vergnügen beim Anwenden und Experimentieren.
Für Hinweise bin ich sehr dankbar.

Viele Grüße
Peter
Mitglied: PeterleB
08.10.2019 um 11:23 Uhr
Übrigens habe ich den Tipp auch im ip-phone-forum gepostet (Ich hoffe, das ist erlaubt)
Dort gab es noch Hinweise auf ein gleichnamiges Thema und einen gut beschriebenen Export/Import für XML bei Excel.

[ https://www.ip-phone-forum.de/threads/fritzbox-telefonbuch-xml-importdat ...]

Gruß Peter
Bitte warten ..
Mitglied: silvereye
21.10.2019 um 22:12 Uhr
Hallo Peter,

vorab danke für Deinen geposteten Code.
Ich habe soeben Deinen VBA code ausprobiert. Exceltabelle mit 5 Spalten, Überschriften Zeile 1, A-E wie Du es beschrieben hast definiert.
Code laufen lassen mit Ergebnis xml-Datei erzeugt.
Die erstellte xml-Datei habe ich versucht in meiner Fitzbox (7490, FRITZ!OS: 07.12) -> Telefonbuch -> Wiederherstellen -> hoch zu laden. Es erfolgt die Fehlermeldung: "Beim Wiederherstellen des Telefonbuchs ist ein Fehler aufgetreten."
Das Telefonbuch wurde nicht implementiert.

Hast Du vielleicht eine Ahnung warum nicht?

Viele Grüße
Bitte warten ..
Mitglied: PeterleB
22.10.2019 um 07:31 Uhr
War mir auch mal passiert, muss aber in Ruhe rekapitulieren, woran es lag.
Melde mich wieder.

Gruß Peter
Bitte warten ..
Mitglied: silvereye
22.10.2019 um 22:03 Uhr
... OK, ich kann warten

Viel Grüße
Bitte warten ..
Mitglied: PeterleB
24.10.2019 um 19:51 Uhr
Ich habe nochmal recherchiert.
Der VBA-Code enthält 2 kleine Fehler.

Zeile 29 a.writeline ("<phonebook") -> a.writeline ("<phonebook>")
Zeile 64 a.writeline ("</phonebooks") -> a.writeline ("</phonebooks>")

Es fehlten jeweils die Tag-Klammern ">".

Probiere es bitte nach Korrektur nochmal.

Gruß Peter
Bitte warten ..
Mitglied: PeterleB
24.10.2019 um 19:56 Uhr
Habe 2 kleine Fehler im Code korrigiert.
Bitte warten ..
Mitglied: PeterleB
24.10.2019, aktualisiert um 21:47 Uhr
Das Ausfiltern leerer Zellen sieht im Code ab Zeile 49 dann so aus:

Die Number ID (0 - 3) korrigiert die Fritz!Box beim Import selbst.
Bitte warten ..
Mitglied: silvereye
27.10.2019 um 16:28 Uhr
Hallo Peter,

ich habe den Codebereich (49-60) mit Deinem neuen Quelltext ersetzt.
Leider kommt wieder die Fehlermeldung: "Beim Wiederherstellen des Telefonbuchs ist ein Fehler aufgetreten."
Bei Dir funktioniert es? Wenn ja welche Software hast Du auf der Fritzbox?

Viele Grüße
Bitte warten ..
Mitglied: PeterleB
27.10.2019 um 22:55 Uhr
Das Wichtige sind nicht die neuen Zeilen Code, sondern die ursprünglich fehlenden ">"

in den Zeilen 29 und 64

a.writeline ("<phonebook") -> a.writeline ("<phonebook>")
a.writeline ("</phonebooks") -> a.writeline ("</phonebooks>")

Hast Du das korrigiert?

Gruß Peter
Bitte warten ..
Mitglied: silvereye
28.10.2019 um 21:30 Uhr
Hallo Peter,

Deine beiden beschriebenen Änderungen hatte ich leider vergessen.
Ich habe nun auch die Zeilen 29 + 64 geändert. Zuerst hat es nicht funktioniert.
Nach langen herumprobieren mit:
- Leerzeichen in der Nummer
- Anzahl der Nummern pro Zeile
- Länderkennung (z.B. +49)
- Namen: Nachname, Vorname oder nur ein Name
- Viele Einträge oder wenige bis nur einen Eintrag
konnte ich den Fehler finden.

Wenn man Umlaute bei den Namen verwendet, funktioniert es nicht.
Wenn man das über einem Browser direkt manuell eingibt funktioniert es aber.
Genau so an meinem Handaparat. Nur nicht über die Eingabe in der Tabelle mit anschließendem Lauf des Makros.
Beim Namen "Rüdiger" steht in der xml-Datei dann:

xml-umlaute - Klicke auf das Bild, um es zu vergrößern

Ich habe deshalb hierzu dann das Attribut in der Zeile 27 von:
27 :a.writeline ("<?xml version=" & """1.0""" & " encoding=" & """utf-8""" & "?>")
in
27: a.writeline ("<?xml version=" & """1.0""" & " encoding=" & """ISO-8859-1""" & "?>")
geändert. Das Makro mit anschließender Wiederherstellung in der FitzBox Oberfläche funktioniert dann auch mit Umlauten.

Spricht aus Deiner Sicht hier etwas gegen diese Änderung bzw. kann das noch zu anderen Fehlern führen?

Viele Grüße
Bitte warten ..
Mitglied: PeterleB
29.10.2019 um 17:59 Uhr
Du bist ja ein Fuchs!
Schön, dass Du das Problem gefunden hast.

Den Code selbst habe ich ja auch teilweise übernommen, insbesondere die Zeile mit der xml-Version.
Die Fritz!Box selbst schreibt in den Export "UTF-8".

Ich weiss leider nicht, ob die Änderung zu Problemen führen kann.
Für UTF-8 müßten wir halt den Zelleninhalt auf Umlaute und Sonderzeichen prüfen und statt "ü" dann "&uuml;" schreiben.
Überraschenderweise enthält aber die exportierte Sicherung der Fritz!Box die Umlaute in Klartext-Umlauten.

Habe im Augenblick keinen richtigen Plan.

Gruß Peter
Bitte warten ..
Mitglied: silvereye
31.10.2019 um 21:52 Uhr
Hallo Peter,

da die Fritzbox die ISO-8859-1 konvertierte xml-Datei lesen kann sehe ich jetzt erst mal keinen weiteren Handlungsbedarf.
Ich habe aber Deinen Code für die UTF-8 ein bisschen für die Umlaute angepasst.
Aus Zeile 39:
habe ich eine Funktion von der Seite dbwiki.net/wiki/VBA_Tipp:_Umlaute_ersetzen ein bisschen angepasst und eingefügt zu:
Umlaut verweist auf die hinzugefügte Funktion am Ende:
In Summe sieht das dann so aus:
Bitte warten ..
Mitglied: PeterleB
01.11.2019 um 07:41 Uhr
Das gefällt mir.

Gruß Peter
Bitte warten ..
Mitglied: 141575
01.11.2019, aktualisiert um 08:02 Uhr
Wenn ihr UTF-8 in den Header der XML Datei schreibt dann sollte diese auch UTF-8 kodiert weggeschrieben werden ! Das FSO Textobject kann das nicht, es kann außer ASCII und Ansi nur Unicode, aber mit Adodb.Stream ist UTF-8 kein Problem:
https://developer.rhino3d.com/guides/rhinoscript/read-write-utf8/
Bitte warten ..
Mitglied: PeterleB
01.11.2019 um 14:49 Uhr
Vielen Dank für den Hinweis.
Das schaue ich mir an.

Gruß Peter
Bitte warten ..
Mitglied: PeterleB
02.11.2019 um 16:11 Uhr
objStream.WriteText schreibt jedoch nicht zeilenweise, sondern immer einen "Datenblock".
Über eine Hilfsvariable müßten also erst die Zeileninhalte gesammelt, mit Zeilenendezeichen versehen und dann in einem Rutsch in den Stream geschrieben werden.
Ist sicher machbar, aber braucht etwas Arbeit.

Gruß Peter
Bitte warten ..
Mitglied: 141575
02.11.2019, aktualisiert um 16:15 Uhr
Zitat von PeterleB:

objStream.WriteText schreibt jedoch nicht zeilenweise, sondern immer einen "Datenblock".
Richtig
Über eine Hilfsvariable müßten also erst die Zeileninhalte gesammelt, mit Zeilenendezeichen versehen und dann in einem Rutsch in den Stream geschrieben werden.
Exakt, ist ja kein Thema ...
Ist sicher machbar, aber braucht etwas Arbeit.
That's Life , dafür ist's hinterher aber auch in der richtigen Kodierung, wer weiß was die Leute so sonst noch an Zeichen in Ihre Kontakte packen...
Bitte warten ..
Mitglied: PeterleB
02.11.2019, aktualisiert um 17:09 Uhr
Wie groß darf denn so eine Stringvariable und ein Streamobjekt werden?
Stell Dir mal ein Fritz-Telefonbuch mit 500 Einträgen vor.

Gruß Peter


PS: Selbstgefunden: 65535 Zeichen im String.
Bitte warten ..
Mitglied: 141575
02.11.2019, aktualisiert um 17:11 Uhr
Zitat von PeterleB:

Wie groß darf denn so eine Stringvariable
So viel du RAM hast
und ein Streamobjekt werden?
Das Streamobject ist nicht groß, das schreibt die Dinge direkt so weg in die Datei wie sie ankommen.
Stell Dir mal ein Fritz-Telefonbuch mit 500 Einträgen vor.
Das ist ehrlich gesagt "mini" und überhaupt kein Problem. Performance- und Speichertechnisch wäre natürlich ein "StringBuilder" effektiver aber das gibt's in VBS nicht nur in .NET.

Aber ich würde an deiner Stelle das XML direkt mit einem XML-Object erstellen
Und das macht dann auch gleich die Kodierung richtig!
Bitte warten ..
Mitglied: PeterleB
02.11.2019, aktualisiert um 17:16 Uhr
Da müßte ich mich wirklich mal reinknien.
Bin doch nur eine gelegenheits-Hobby-Programmierer.
Funktioniert das auch mit VBA?
Bitte warten ..
Mitglied: 141575
02.11.2019 um 17:17 Uhr
Zitat von PeterleB:
Funktioniert das auch mit VBA?
Ja hervorragend.
Bitte warten ..
Mitglied: 141575
02.11.2019, aktualisiert um 17:30 Uhr
Hier mal ein einfaches Beispiel:
Ergibt als Beispiel
Vollkommen objektorientiert ohne das String-Gematsche und vor allem das wichtigste: Du erhältst zuverlässig gültigen XML Code ohne eventuelle Flüchtigkeitsfehler(Groß-Kleinschreibung etc.) weil es ein echter XML Parser erstellt .
Bitte warten ..
Mitglied: PeterleB
02.11.2019 um 17:42 Uhr
Danke.
Ist trotzdem schwerer "Tobak" für mich.

Jetzt geht's erstmal zu 'ner Geburtstagsfeier.

Gruß Peter
Bitte warten ..
Ähnliche Inhalte
TK-Netze & Geräte
Fritzbox als Session Boarder Controller
Tipp von Spirit-of-EliTK-Netze & Geräte15 Kommentare

Moin zusammen, Es wird zwar auch häufig drauf hingewisen das man auch TK Anlagen an den S0 einer Fritzbox ...

Router & Routing

Wireguard contra Fritzbox iPSec - Update!

Anleitung von VisuciusRouter & Routing5 Kommentare

UPDATE als 1. Kommentar angefügt Hallo in die Runde, ein Kunde hat heute ein DSL-Upgrade geschaltet bekommen und mich ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von 134464Router & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

VB for Applications

ICS Import zu Excel

Tipp von PeterleBVB for Applications5 Kommentare

Falls es jemanden interessiert. Auf Grundlage einer gefundenen Anleitung habe ich mal ein Makro (VBA) für Excel angepasst, welches ...

Neue Wissensbeiträge
Windows Netzwerk

SCOM ( System Center Operations Manager ) um eine E-Mailschnittstelle erweitern

Anleitung von Juanito vor 5 StundenWindows Netzwerk

Einleitung System Center Operations Manager (SCOM) ist Microsoft's Lösung zum Überwachen von Servern. Dazu zählt die generelle Erreichbarkeit, Festplattenspeicher, ...

Humor (lol)
BioShield gegen 5G
Information von magicteddy vor 1 TagHumor (lol)3 Kommentare

Moin wer sich gegen die hochgefährlichen 5G schützen möchte wird hier fündig: 5GBioShield "gegen 5G-Strahlung" Ich glaube, ich sollte ...

Windows Server

ScheduledTasks mit einem Group-Managed-Service-Account (GMSA) ausführen

Anleitung von ToniHo vor 1 TagWindows Server

Hallo zusammen, wer schonmal versucht hat ein Group-Managed-Service-Account (GMSA) auf einem bestehenden ScheduledTask einzutragen, ist an der GUI vermutlich ...

Humor (lol)
Anti 5G USB Stick
Information von Ex0r2k16 vor 1 TagHumor (lol)14 Kommentare

Perfekt für den Freitag, findet sich hier ein Businesspartner der mit mir zusammen einen Anti 6G Esoterik Stick rausbringt? ...

Heiß diskutierte Inhalte
Windows 10
Win 10 Problem Intergeschwindigkeit aber LAN OK
Frage von helpmikeWindows 1021 Kommentare

Hallo, versuche mal das Problem zu beschreiben. Der PC (i5 9600 / 16 GB / H370M / Intel 1 ...

Router & Routing
Portfreigabe NAS Fritzbox
gelöst Frage von dbox3Router & Routing14 Kommentare

Hallo zusammen, ich habe ein Netzwerk eingerichtet (s.Bild) bei dem ich auf dem NAS der FB7490 mit der IP ...

Exchange Server
Windows Exchange Server 2010 ablösen durch neuen Exchange Server 2016 - Was beachten
Frage von server0815Exchange Server14 Kommentare

Hallo, ich habe die Aufgabe bekommen unseren nun schon etwas in die Jahre gekommenen Exchange Server 2010 (Version 14.03.0487.000) ...

Humor (lol)
Anti 5G USB Stick
Information von Ex0r2k16Humor (lol)14 Kommentare

Perfekt für den Freitag, findet sich hier ein Businesspartner der mit mir zusammen einen Anti 6G Esoterik Stick rausbringt? ...