Rodrigo Garcia
unread,Sep 19, 2017, 7:32:29 AM9/19/17You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hola,
Tengo un script realizado en bash que me gustaría portar a un módulo de access para poder llamarlo desde una macro de Access. El script lo que hace es:
1.- Sustituye en la primera línea de un fichero el caracter punto y coma ";" por el caracter de la negación "¬".
2.- Sustituye los caracteres ");=" por los caracteres ")¬=" (básicamente vuelve a sustituir los ; por los ¬ cuando encuentra el ; entre determinados caracteres)
3.- Elimina las cadenas incluidas entre las siguientes comillas simples'T("', '&T("'y '")'
4.- Elimina las horas, minutos y segundos de los campos de fecha.
Esto en un bash script lo con esta línea:
sed '1 s/;/¬/g; s/);=/)¬=/g; s/=T("\|")\|&T("\| [0-2][0-9]:[0-5][0-9]:[0-5][0-9]//g' FicheroOrigen.txt > FicheroDestino.txt
Donde los pasos que he descrito antes se corresponden con las siguientes partes del comando:
1.- Comando: 1 s/;/¬/g
2.- Comando: s/);=/)¬=/g
3 y 4.- Comando s/=T("\|")\|&T("\| [0-2][0-9]:[0-5][0-9]:[0-5][0-9]//g
El fichero tiene un tamaño de 3 Gb y creciendo, como referencia, ahora tardo unos 15 minutos en procesar el fichero entero desde un terminal de Linux simulado con Cygwin.
¿Alguien sabría cómo procesar este fichero con VBA y que no se muera en el intento?
La función replace sustituye caracteres, pero no sé muy bien cómo leer/escribir un fichero o como realizar la sustitución de caracteres en una sola línea y no en el fichero entero.
Un saludo