El 22 de septiembre de 2010 15:17, Eduardo Moreno <[email protected]>
escribió:

        El 22/09/10 08:39, kikejordi escribió:
        
        
        
                Hola, tengo una vieja base de datos hecha con qbasic,
                las tablas son de longitud fija, abriendo el archivo con
                writer se ve una sola fila (no tiene separador de
                registros), hay alguna forma de importarlo con calc
                pasandole
                como parametros la longitud del registro, y la de los
                campos? una vez separados los registros no es dificil
                separar los campos de longitud fija, mi problema es con
                los separadores de registro, no encuentro nada que me
                los separe.
                
                gracias
                
                  
        
        La pregunta es, ¿Tu programa  como termina las filas?
        
        Si abres el archivo que generó tu programa con otra aplicación
        (gedit o WordPad) ¿También ves una sola fila?
        
        En caso de que si, si sabes que el largo de cada registro es
        constante, pues creo que tu solución primera es hacer un
        pequeños programa que te vaya segmentando tu texto.
        
        Si tienes el código de tu programa de Qbasic, checa si lo puedes
        transformar en un macro o compilalo con RealBasic para que lo
        tengas listo para Windows, Linux y MAC.
        
        -
        

 
        
        - 
        Mi Office genera: Seguridad, Confianza y Ahorro
        
        
        J. Eduardo Moreno
        TOKONHU de México
        044 55 2748 4840
        
        
        
        
        Ante todo gracias por tu respuesta. Abriendo el archivo con
        gedit se ve una sola fila, y si, separando esa fila de acuerdo a
        la longitud del registro, que es constante, tengo gran parte de
        mi problema solucionado. pero esto es lo que no logro hacer.
        intente insertar un caracter especial con el awk con el
        siguiente script:
        
         awk 'BEGIN {RS=""} {for(i=1;i<1268;i++) {for(j=1;j<23;j++)
        print $(i*j)} print "/n"}' CONCEPTO.PRO > convert.txt
        
con RS="", hago que lea de a un caracter por vez, el archivo a dividir
tiene 27896 caracteres, la longitud de registro= 22, (1268 ciclos de 22
da 27986), entonces en el ciclo mas chico imprimia $i*j , el caracter
tal como esta en el archivo original, y a la salida del ciclo chico
imprime un /n newline, que usaria como separador de registro, pues
bueno, si bien no da error, no funciona.

transcribo parte del archivo CONCEPTO.PRO (uno de los que tengo que
migrar, el mas simple):

82 l99010 DIEZ        82 199110 DIEZ        82 199210 DIEZ
1001990LICENCIA.      1001991LICENCIA.      1001992LICENCIA       80
199010 (Diez)      80 199110 (Diez)      80 199210 (Diez)      81 199010
DIEZ        81 199110 DIEZ        81 19929.66 (Nueve.66)40 19909.33
(Nueve.33)40 199110 (Diez)      40 199210 (Diez)      48 19908 (Ocho)
48 19918.33 (Ocho.33) 48 19927.66 (Siete.66)1  19908 (ocho)       1
19918.33 (ocho/33) 1  19929.33 (nueve/33)2  19909.66 (Nueve.66)2
19919.66 (Nueve.66)2  199210 (Diez)      3  19909 (Nueve)      3  199110
(Diez)      3  199210 (Diez)      4  1990               4  19919.33
(nueve.33)4  19929.33 (nueve.33)5  19908.66 (Ocho.66) 5  19919 (Nueve)
5  19929.33 (Nueve.33)6  19919.33 (Nueve.33)6  19929 (Nueve)      7
19908.66 (Ocho.66) 7  19918.66 (Ocho.66) 7  19929 (nueve)      12
19909.33 (Nueve.33)13 19909 (Nueve)      13 1991               13 19929
(Nueve)      

y parte del archivo convert.txt resultante

82

l99010
DIEZ
82
199110
DIEZ
82
199210
DIEZ
1001990LICENCIA.
1001991LICENCIA.
1001992LICENCIA
80
199010
(Diez)
80
199110
(Diez)
80
199210
(Diez)
81
l99010
82
DIEZ
199210
1001990LICENCIA.
1001992LICENCIA
199010
80
(Diez)
199210
81
DIEZ
199110
81
(Nueve.66)40
(Nueve.33)40
(Diez)
199210
48
(Ocho)
19918.33
48
DIEZ
DIEZ
DIEZ
1001992LICENCIA
(Diez)
(Diez)
(Diez)
DIEZ
DIEZ


de nuevo,gracias por tu atencion

kike

Responder a