Generar planos
Manuel Enrique González Ramírez
maengora en gmail.com
Mie Feb 20 03:54:48 CET 2008
Buenas:
Recuerdo que inicie este hilo buscando la solución a la generación de
archivos planos separados
por espacio.
Quiero volver a retormar este hilo porque aún no he hallado la solución y
esperando que alguien me
pueda colaborar con esto vuelvo y explico lo que busco:
tengo una base de datos denominada prueba que contiene una tabla llamada ejm
que esta compuesta
por tres registros (apellido1,apellido2 y nombres).
Lo que necesito es generar una consulta que me liste todos los registros y
que a su vez los
almacene en la unidad pero... (aquí es donde viene el rollo) al momento de
ser almacenados
éstos registro deben estar separados por espacios, por ejemplo el primer
espacio que es para el
campo APELLIDO1 no debe exceder de 12 caracteres, es decir, que por más
largo que se el apellido1
éste solo ubicara hasta un máximo de 12 caracteres; a partir de la "columna"
13 se ubicaría el
apellido2 y éste ocuparía hasta la columna 25 y a partir de la 26 va el
nombre.
El formato sería más o menos así
-------------------------------------------------
Nombre Campo | Longitud | Posición | Tipo
-------------------------------------------------
APELLIDO1 | 12 | 01 a 12 | Alfanumerico
APELLIDO2 | 12 | 13 a 25 | Alfanumerico
NOMBRES | 12 | 26 a 50 | Alfanumerico
Un amigo de la lista me envio esta solución
>>> "%-20s %-10s %-5s" % ("hola", "don", "tu")
'hola don tu '
Y de verdad que funciona bastante bien en modo consola, pero como lo pueden
notar
no he sido capaz de ajustarla a lo que necesito que es con base de datos.
Aquí el código de prueba sobre el que vengo trabajando (pero que aún no me
funciona):
# -*- coding: iso-8859-1 -*-
# Don't modify comment
import wx
#[inc]add your include files here
import MySQLdb as con
db = con.connect(host='localhost', user='root', passwd='****', db='prueba')
c = db.cursor()
#[inc]end your include
class MyFrame(wx.Frame):
def __init__(self,parent,id = -1,title='',pos = wx.Point(1,1),size =
wx.Size(445,240),style = wx.DEFAULT_FRAME_STYLE,name = 'frame'):
pre=wx.PreFrame()
self.OnPreCreate()
pre.Create(parent,id,title,pos,size,style,name)
self.PostCreate(pre)
self.initBefore()
self.VwXinit()
self.initAfter()
def __del__(self):
self.Ddel()
return
def VwXinit(self):
self.SetTitle('Generación de archivos planos')
self.Show(False)
self.SetFont(wx.Font(12,74,90,90,0,"Tahoma"))
self.SetBackgroundColour(wx.SystemSettings.GetColour(
wx.SYS_COLOUR_WINDOW))
self.bt_planos = wx.Button(self,-1,"",wx.Point(130,115),wx.Size
(165,55))
self.bt_planos.SetLabel("GENERAR PLANOS")
self.bt_planos.SetFont(wx.Font(12,74,90,90,0,"Tahoma"))
self.Bind(wx.EVT_BUTTON,self.generar_da,self.bt_planos)
self.st4c = wx.StaticText(self,-1,"",wx.Point(60,10),wx.Size
(332,89),wx.ST_NO_AUTORESIZE)
self.st4c.SetLabel("Ejemplo de generación de archivos planos que
quedan\r\nalmacenados en el disco duro con el formato\r\nestablecido.")
self.Refresh()
return
def VwXDelComp(self):
return
#[win]add your code here
def generar_da(self,event): #init function
#[62d]Code event VwX...Don't modify[62d]#
#add your code here
sql = c.execute('SELECT %-25s, %-25s FROM
ejm'%('nombre','apellido'))
res = c.fetchall()
if res<>None:
f = open('c:/guardar.dat','a')
for i in res:
f.write(str(i[0]))
f.write(str(i[1]+'\n'))
f.close()
w = wx.MessageDialog(self,u"Archivo generado con éxito","GENERAR
PLANOS",wx.OK | wx.ICON_INFORMATION)
w.ShowModal()
w.Destroy()
return #end function
def OnPreCreate(self):
#add your code here
return
def initBefore(self):
#add your code here
return
def initAfter(self):
#add your code here
self.Centre()
self.Show()
return
def Ddel(self): #init function
#[ f9]Code VwX...Don't modify[ f9]#
#add your code here
return #end function
#[win]end your code
Gracias amigos por toda la colaboración que me puedan brindar.
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es