Code: Alles auswählen
# Funktioniert alles:
db_file.addField(("Spalte_Char","C",8))
db_file.addField(("Spalte_Date","D"))
db_file.addField(("Spalte_Integer","I"))
Wenn ich nun aber ein Float oder allgemeines Numeric Field erstellen will, MUSS ich zusätzlich zu Anzahl der DEzimalstellen(optional), die Länge angeben. Das verwirrt mich. Wozu soll das gut sein? Und warum?
Wenn ich das frei lasse, oder einfach nichts übergebe, bekomme ich Fehlermeldungen:
Code: Alles auswählen
dbfile.addField(("Spalte_float","F"))
Traceback (most recent call last):
File "C:\<string>", line 1, in ?
File "C:\Python24\Lib\site-packages\dbfpy\dbf.py", line 226, in addField
self.header.addField(*defs)
File "C:\Python24\Lib\site-packages\dbfpy\header.py", line 214, in addField
self.recordLength += self._addField(*defs)
File "C:\Python24\Lib\site-packages\dbfpy\header.py", line 189, in _addField
ignoreErrors=self._ignore_errors)
File "C:\Python24\Lib\site-packages\dbfpy\fields.py", line 80, in __init__
raise ValueError("[%s] Length isn't specified" % name)
ValueError: [TEST5] Length isn't specified
Code: Alles auswählen
dbfile.addField(("Spalte_float","F","",3))
File "C:\<string>", line 1, in ?
File "C:\Python24\Lib\site-packages\dbfpy\dbf.py", line 226, in addField
self.header.addField(*defs)
File "C:\Python24\Lib\site-packages\dbfpy\header.py", line 214, in addField
self.recordLength += self._addField(*defs)
File "C:\Python24\Lib\site-packages\dbfpy\header.py", line 189, in _addField
ignoreErrors=self._ignore_errors)
File "C:\Python24\Lib\site-packages\dbfpy\fields.py", line 81, in __init__
length = int(length)
ValueError: invalid literal for int():
