Dictionary aus anderen Datei einlesen..

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 1. November 2008, 10:21

str1442 hat geschrieben:Naja, per Editor und mit langen Zeilen schon, ist ja auch ein "Barebone" Format. Allerdings kann man zb auch OpenOffice Calc / Excel (wobei excel Microsoft mässig gern mal Mist zu bauen scheint) verwenden.)

Es ist aber eindeutig eine Konfigurationsdatei. Editierst du Konfigurationsdateien in Excel? Ist auch schlechter geeignet für Versionskontrolle etc.

str1442 hat geschrieben:ConfigParser allerdings erfordert zwingend eine Sektion, die ja hier nicht gegeben ist. Könnte man "Hosts" nennen, wäre aber redundant.

In dem Fall etwas, aber spätestens wenn weitere Parameter festgelegt werden sollen wird es nötig und daher halte ich es im Hinblick auf leichte Erweiterbarkeit akzeptabel. Eine Section hinzuzufügen ist definitiv weniger Overhead, als etwa XML vorschreibt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Beitragvon str1442 » Samstag 1. November 2008, 10:44

Kommt auf die Konfigurationsdatei an. Im hier vorliegenden Fall geht es ja nicht primär um Konfiguration, sondern um eine Zuordnung. Soll zwar auch von Hand editierbar sein, ist aber primär imho keine Konfiguration, denn Konfigurationen haben typischerweise keine Auflistungen, sonderen statische Namen, deren Wert man entsprechend setzt. Insofern verwende ich csv für Konfigurationen auch nicht. Konfigurationsdateien an sich sollten natürlich per Editor bearbeitbar sein, und solange die Zeilen einer csv Datei recht kurz bleiben, geht das auch.

Schlechter bei der Versionskontrolle: Das einzige was mir da einfallen würde wären recht lange "diff" Zeilen, aber XML und co sehen da auch nicht so schön aus.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 1. November 2008, 11:52

str1442 hat geschrieben:Schlechter bei der Versionskontrolle: Das einzige was mir da einfallen würde wären recht lange "diff" Zeilen, aber XML und co sehen da auch nicht so schön aus.

Ich bin mir nicht sicher, ob CSV dir die Reihenfolge der Einträge garantiert, also kann es da auch dazu kommen, dass die Datei komplett umsortiert wird, was bei Diffs eher blöd aussieht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Beitragvon str1442 » Samstag 1. November 2008, 12:09

Das CSV Modul funktioniert per Generator und gibt einem die Einträge von Anfang bis Ende linear zurück. Ansonsten dürfte es da eher keine Umsortierungen geben. Im Gegenteil, wenn man eine CSV Datei mit OpenOffice Calc editiert, werden die einzelnen Spalten ja auch geordnet dargestellt. Und per Editor funktionierts auch.
Crady
User
Beiträge: 18
Registriert: Freitag 31. Oktober 2008, 18:58

Beitragvon Crady » Sonntag 2. November 2008, 03:11

Vielen Dank, Euch allen!

Also meine Version - oder eben die Kompakte von Numerix funktionieren ganz gut...

Muss nur den Port noch in eine Integer wandeln, da ich mich mit einem String nicht verbinden kann.

@Leonidas: (Edit...)

Der ConfigParser ist zwar ganz schön - wenn man nur einen Wert braucht... Wenn ich in meiner Config.ini z.B. eingebe:

[code=][Hosts]
Hosts = {port:'IP', port:'IP',....,port:'IP'}
[/code]

Dann kann ich das (in meinen Versuchen jedenfalls) nur als einen kompletten String auslesen - nicht als Dictionary...

Wenn ich z.B.
[code=][Namen]
Namen: Hans, Peter, Uwe
[/code]

Auslese und dann in einer FOR Schleife drucke bekomme ich:

[code=]H
a
n
s
,

P
e
t
e
r
,

U
w
e
[/code]

Statt:

[code=]
Hans
Peter
Uwe
[/code]

Naja... wie dem auch sei, DIESES Problem ist nun erstmal gelöst :)

Nun mache ich mich mal an einen GUI für die Eingaben... da muss ich aber noch was in meinem Viseo2Brain ansehen bzw. mein Buch weiterlesen :)
Zuletzt geändert von Crady am Sonntag 2. November 2008, 16:17, insgesamt 1-mal geändert.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Beitragvon numerix » Sonntag 2. November 2008, 06:50

Code: Alles auswählen

>>> s = "Hans, Peter, Uwe"
>>> for name in s.split(", "):
   print name

   
Hans
Peter
Uwe
BlackJack

Beitragvon BlackJack » Sonntag 2. November 2008, 08:19

@crady: Na dann gib das halt nicht *so* in Deine Config.ini ein, sondern so wie die Zuordnungen in Configdateien eben gemacht werden, als 'Schlüssel=Wert' pro Zeile. :roll:
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Sonntag 2. November 2008, 12:15

@crady: erstens heiß ich nicht Leonardis (das ist für viele scheinbar ein Problem) und zweitens würde man

[code=][Hosts]
6667 = 127.0.0.1
8080 = 192.168.223.5[/code]
in die Konfigurationsdatei schreiben. Was auch IMHO übersichtlicher ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Crady
User
Beiträge: 18
Registriert: Freitag 31. Oktober 2008, 18:58

Beitragvon Crady » Sonntag 2. November 2008, 16:16

Ooops... Sorry, Leonidas :(

War keine Absicht!!!

Danke... werde ich mal probieren :)

Wer ist online?

Mitglieder in diesem Forum: /me, Bing [Bot]