def grabarFichSTAT(self, nomGuide, fich): # Para convertir datos de games a bookGuide self.changeTo(None, nomGuide) f = open(fich, "rb") liRegs = [] for linea in f: linea = linea.strip() xpv, pv, fen = linea.split("|") reg = SQLDBF.Almacen() reg.XPV = xpv reg.PV = pv reg.FEN = fen self.ultPos += 1 reg.POS = self.ultPos liRegs.append(reg) select = "XPV,PV,FEN,POS" dbf = SQLDBF.DBFT(self.conexion, self.tablaDatos, select) def dispatch(num): pass dbf.insertarLista(liRegs, dispatch) dbf.cerrar()
def dbfT(self, ctabla, select, condicion="", orden=""): """ Acceso a una tabla con un navegador tipo DBF, con lectura completa de todos los datos. @param ctabla: name de la tabla @param select: lista de campos separados por comas @param condicion: sentencia de condicion SQL @param orden: sentencia de orden SQL """ return DBF.DBFT(self.conexion, ctabla, select, condicion, orden)
def readEXT(self, move): select = "COMMENT,GRAPHICS,XDATA" condicion = "XPV='%s'" % move.xpv() dbf = SQLDBF.DBFT(self.conexion, self.tablaDatos, select, condicion) dbf.leer() if dbf.reccount(): dbf.goto(0) move.comment(dbf.COMMENT, True) move.graphics(dbf.GRAPHICS, True) move.xdata(Util.blob2var(dbf.XDATA), True) dbf.cerrar()
def readAllDB(self): self.transpositions = {} self.bookmarks = [] self.ultPos = 0 select = "ROWID,XPV,PV,NAG,ADV,FEN,MARK,POS" orden = "XPV" condicion = "" dbf = SQLDBF.DBFT(self.conexion, self.tablaDatos, select, condicion, orden) dbf.leer() dicMoves = {} dicMoves[""] = self.root for recno in range(dbf.reccount()): dbf.goto(recno) xpv = dbf.XPV pv = dbf.PV if not pv: self.root.rowid(dbf.ROWID) continue xpvfather = xpv[:-2 if len(pv) == 4 else -3] if xpvfather in dicMoves: father = dicMoves[xpvfather] mv = UnMove(self, father) mv.pv(pv) mv.xpv(xpv) mv.fen(dbf.FEN) mv.rowid(dbf.ROWID) mv.nag(dbf.NAG, True) mv.adv(dbf.ADV, True) mark = dbf.MARK if mark: self.bookmarks.append(mv) mv.mark(dbf.MARK, True) mv.pos(dbf.POS, True) if dbf.POS >= self.ultPos: self.ultPos = dbf.POS dicMoves[xpv] = mv father.addChildren(mv) dbf.cerrar()