[Python-es] problema con las tildes
monoBOT
monobot.soft en gmail.com
Dom Abr 4 10:26:01 CEST 2010
la línea 83 está en la función de grabado:
def grabar(self, event):
dialogo=wx.MessageDialog(None, '¿Desea Grabar y Salir?', 'Atención',
wx.YES_NO|wx.ICON_QUESTION|wx.STAY_ON_TOP)
respuesta=dialogo.ShowModal()
if (respuesta ==wx.ID_YES):
print 'obteniendo valores...'
nombres_attr = ['numerocolegiado','nombre', 'primerapellido',
'segundoapellido', 'dni', 'direccion', 'codigopostal', 'poblacion', 'email',
'telefono1', 'telefono2']
datos_entrados = [self.ventana.entranumcol,
self.ventana.entranombre, self.ventana.entraapellido1,
self.ventana.entraapellido2, self.ventana.entradni, self.ventana.entradirec,
self.ventana.entrapost, self.ventana.entrapobl, self.ventana.entraemail,
self.ventana.entratf1, self.ventana.entratf2]
print 'guardando...'
for m in range(len(datos_entrados)):
cambia_attrib(arbol='usuario', dato=nombres_attr[m],
nuevovalor=reg_xml(datos_entrados[m].GetValue()))
nom_empr = ['nombreempresa', 'cifempresa',
'direccionempresa','codigopostalempresa', 'telefonoempresa']
dat_empr = [self.ventana.entranombreempresa,
self.ventana.entracifempresa, self.ventana.entradireccionempresa,
self.ventana.entracodigopostalempresa, self.ventana.entratelefonoempresa]
for m in range(len(nom_empr)):
cambia_attrib(arbol='datosempresa', dato=nom_empr[m],
nuevovalor=reg_xml(dat_empr[m].GetValue()))
cambia_attrib('usuario', 'colegio',
reg_xml(self.ventana.entracolegio.GetStringSelection()))
cambia_attrib('usuario', 'provincia',
reg_xml(self.ventana.entraprov.GetStringSelection()))
guarda_datos(datogral)
print 'guardado'
self.Destroy()
else:
print 'Cancelado'
dialogo.Destroy()
la función de grabado lo que hace es llamar a unas
variables self.ventana.entranombreempresa todas ellas se montan de esta
forma:
self.ventana.entranombre = wx.TextCtrl(self.ventana, -1, nombre_en_fichero)
y el valor por defecto de cada una proviene del fichero xml también:
nombre_en_fichero = xml_none(busqueda_xml ('usuario', 'nombre'))
así que lo que hago es:
lee xml ---> muestra en pantalla el dato guardado ---> el usuario cambia los
datos ---> grabo los datos.
las funciones de lectura y guardado de xml son:
def busqueda_xml (arbol, dato):
valor =
arbol_gral.getElementsByTagName(arbol)[0].getElementsByTagName(dato)[0].childNodes[0].nodeValue
return valor
def guarda_datos(archivo):
fichero = open(os.path.realpath(archivo), "w")
arbol_gral.writexml(fichero, encoding='iso-8859-1')
fichero.close()
return True
la funcion xml_none lo que hace es cambiar una entrada igual a cero por un
campo limpio
def xml_none(m):
if m =='0':
n = ''
return n
return m
la función contraria la pongo al grabar y lo que hace es convertir un campo
vacío en un 0, y también los caracteres prohibidos por xml por sus sutitutos
... así evito el error al grabar.
def reg_xml(m):
if m == '':
n = '0'
return n
n = m.replace('&', '&')
n = n.replace('<','<')
n = n.replace('>','>')
return n
--
monobotblog.alvarezalonso.es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100404/90659486/attachment.html>
Más información sobre la lista de distribución Python-es