Mas Archivos y comandos DOS

25/10/2006 - 08:51 por Jon | Informe spam
Hola a todos, a ver si en esta encuentro solución, que tengo dos preguntas
que haceros:
1) Cuando abro un fichero editable con Notepad, lo hago de la siguiente
forma para ir leyendo y almacenando en un vector el contenido del mismo por
filas.
Open directorio & "\" & fichero For Input As #1
For i = 0 To filasMax
Input #1, fila(i)
Next i
Close #1
Lo que pasa es que el fichero no siempre tiene el mismo numero de filas, y
cuando llega al final si el filasMax (indice de filas) es mayor que el numero
de filas del fichero, me da error. Por tanto, como puedo conocer de antemano
el numero de filas del fichero? o como puedo detectar que hay un error para
pasar a otro lado del bucle?

2) A parte de esto, y aunque no está relacionado, quiero saber si desde una
Macro de Excel se pueden ejecutar comandos de DOS. Por ejemplo, que copie un
fichero de una carpeta, etc...
fichero="DOC1.doc"
directorio="C:\prueba"
objetivo=directorio & "\" & fichero
copy objetivo c:\prueba2

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Juan M
25/10/2006 - 10:52 | Informe spam
Hola Jon

Para tu primera pregunta lo normal es comprobar que se ha llegado al final
del archivo de texto, y si ocurre esto salir del bucle

(de la ayuda de excel vba)

Dim MiCadena, MiNúmero
Open "PRUEBA" For Input As #1 ' Abre el archivo para recibir los datos.
Do While Not EOF(1) ' Repite el bucle hasta el final del archivo.
Input #1, MiCadena, MiNúmero ' Lee el carácter en dos variables.
Debug.Print MiCadena, MiNúmero ' Imprime datos en la ventana
Inmediato.
Loop
Close #1 ' Cierra el archivo.

Tambien puedes consultar esta direccion de Eduardo Olaz. Los capitulos 17,
18, 19 tratan sobre el trabajo con ficheros.

http://www.olaz.net/descargas/acces...tregas.htm

Respecto a la segunda pregunta vba dispone de comandos para copiar y borrar
archivos

para borrar Kill
Kill "PRUEBA" ' Se elimina el archivo
para copiar
Dim ArchOrigen, ArchDestino
ArchOrigen = "ARCHORIG" ' Se define el nombre del archivo de origen.
ArchDestino = "ARCHDEST" ' Se define el nombre del archivo de origen.
File Copy ArchOrigen, ArchDestino ' Se copia el archivo de origen en
el archivo de destino.

Si quieres otros comandos no dejes de preguntar, o consultar la ayuda. :)

Un saludo
Juan


"Jon" escribió en el mensaje
news:
Hola a todos, a ver si en esta encuentro solución, que tengo dos preguntas
que haceros:
1) Cuando abro un fichero editable con Notepad, lo hago de la siguiente
forma para ir leyendo y almacenando en un vector el contenido del mismo
por
filas.
Open directorio & "\" & fichero For Input As #1
For i = 0 To filasMax
Input #1, fila(i)
Next i
Close #1
Lo que pasa es que el fichero no siempre tiene el mismo numero de filas, y
cuando llega al final si el filasMax (indice de filas) es mayor que el
numero
de filas del fichero, me da error. Por tanto, como puedo conocer de
antemano
el numero de filas del fichero? o como puedo detectar que hay un error
para
pasar a otro lado del bucle?

2) A parte de esto, y aunque no está relacionado, quiero saber si desde
una
Macro de Excel se pueden ejecutar comandos de DOS. Por ejemplo, que copie
un
fichero de una carpeta, etc...
fichero="DOC1.doc"
directorio="C:\prueba"
objetivo=directorio & "\" & fichero
copy objetivo c:\prueba2

Muchas gracias.
Respuesta Responder a este mensaje
#2 Jon
25/10/2006 - 13:23 | Informe spam
Hola Juan M

He conseguido hacer lo que me has dicho, pero no me funciona lo de copiar
ficheros. No se si es que hay que activar alguna función o no. Si sabes algo
al respecto te agradecría que me lo comentaras.

Muchas gracias.
Respuesta Responder a este mensaje
#3 Tux
25/10/2006 - 13:48 | Informe spam
Jon escribió:
Hola Juan M

He conseguido hacer lo que me has dicho, pero no me funciona lo de copiar
ficheros. No se si es que hay que activar alguna función o no. Si sabes algo
al respecto te agradecría que me lo comentaras.

Muchas gracias.



Buenas :-)

La macro de copiar ficheros tiene un bug de ortografia en la ayuda de
excel quedaria así:


Dim ArchOrigen, ArchDestino
ArchOrigen = "ARCHORIG"
ArchDestino = "ARCHDEST"
FileCopy ArchOrigen, ArchDestino

FileCopy es el equivalente de VB como Copy es en MSDOS.

Espero no haberme metido donde no me llaman, bueno eso un Saludo :-)



¡Un SAludo!:-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#4 Jon
25/10/2006 - 14:52 | Informe spam
Hola
Muy bien, ya lo he conseguido, jeje. Es que estaba haciendo de otra forma
mas complicada, pero así si que da gusto.
Muchas gracias a todos!
Hasta otra...

"Tux" wrote:

Jon escribió:
> Hola Juan M
>
> He conseguido hacer lo que me has dicho, pero no me funciona lo de copiar
> ficheros. No se si es que hay que activar alguna función o no. Si sabes algo
> al respecto te agradecría que me lo comentaras.
>
> Muchas gracias.

Buenas :-)

La macro de copiar ficheros tiene un bug de ortografia en la ayuda de
excel quedaria así:


Dim ArchOrigen, ArchDestino
ArchOrigen = "ARCHORIG"
ArchDestino = "ARCHDEST"
FileCopy ArchOrigen, ArchDestino

FileCopy es el equivalente de VB como Copy es en MSDOS.

Espero no haberme metido donde no me llaman, bueno eso un Saludo :-)



¡Un SAludo!:-)

www.fermu.com
www.zorval.es

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida