QuickBasic - Abrir archivos

 
Vista:

Abrir archivos

Publicado por Sebastian Melmoth (6 intervenciones) el 09/12/2009 23:46:02
Hola, a quien pueda ayudarme...

Sé que esto es muy básico, pero no logro abrir archivos desde QB. He estado mirando en todos los tutoriales habidos y por haber, y o bien me dice que "path not found", o bien "bad file name", o, si no me da ninguna de estas dos respuestas, sencillamente se ejecuta la orden sin que pase nada... Nada más allá de la pantalla en negro y la línea inferior de info que dice "Press any key to continue". Alguien puede decirme qué estoy haciendo mal? No debería la siguiente línea abrir el archivo en cuestión?

OPEN "d:\prueba.txt" FOR INPUT AS #1

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Abrir archivos

Publicado por Antoni Masana (13 intervenciones) el 10/12/2009 08:27:37
Un fichero se puede abrir de diferentes formas en función de que deseas hacer con él

Los formas son estas: APPEND, BINARY, INPUT, RANDOM, OUTPUT.

No te voy a explicar para que sirve cada uno.

Un simple ejemplo para que entiendas que haces mal.

Cuando abres un LIBRO ¿Ya sabes que pone o necesitas leerlo?

Pues eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Sebastian Melmoth (6 intervenciones) el 10/12/2009 09:50:28
Hola, Antoni. Tu información no me ha servido de nada, pero gracias por el interés. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Capitan Kirk (5 intervenciones) el 10/12/2009 21:11:23
Si el nombre del archivo está correcto (nombre y ubicación), ¿le has dicho que lea el contenido? Porque, efectivamente, la línea que has puesto te abre el archivo para lectura secuencial (si el archivo existe en la ruta indicada), pero si no lees su contenido...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Sebastian Melmoth (6 intervenciones) el 11/12/2009 16:02:14
No, no le he dicho que lea el contenido. Como ya dije antes, soy nuevo en esto, y no he encontrado ninguna explicación clara en ninguna parte de cómo hacerlo (aunque ya intuía que no bastaba con la orden OPEN etc.... De hecho, si estoy en este foro es para que alguien me ilumine en ese aspecto. Supongo que una indicación sobre cómo decirle a mi Qbasic que abra y lea un archivo es algo que está al alcance de quienes, como vosotros, sabéis mucho del tema. Veamos... Supongamos que tengo un archivo Power point, o bien un archivo de audio en formato mp3 o wma o el que sea... ¿Podría yo programar una línea desde QB para que, una vez en ejecución, el programa abriera cualquiera de dichos archivos indicados (a través, lógicamente, de sus respectivas aplicaciones)? ¿O eso es algo que no se puede hacer y lo único a que puedo aspirar desde un programa de Qbasic es a que me abra otros programas de Qbasic o algún archivo de texto o algo así? Bueno, ésa es mi primera consulta. En caso de que fuera posible (y aun en el caso de que no se pudiera y sólo tuviera la posibilidad de abrir "otro tipo de archivos"), ¿cuáles son los pasos reales para hacerlo? Quiero decir, al margen de la orden OPEN... seguida del nombre del archivo y sus comandos INPUT, BINARY, etc... ¿qué más tendría que indicarle a Qbasic para que REALMENTE me abriera el archivo? No quisiera parecer descortés, pero la teoría me interesa menos que la aplicación de un ejemplo práctico que funcione. Si tú, Capitán Kirk, o cualquiera de los que lean esto, pudiera mostrarme un ejemplo práctico, detallado línea por línea, me sería de infinita ayuda. Y nada más. Os agradezco a todos de antemano el interés y la ayuda real que podáis facilitarme. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Capitan Kirk (5 intervenciones) el 12/12/2009 02:52:57
No puedo escribirte aquí un manual de programación, y hace mucho tiempo que no utilizo QuickBasic (utilicé la versión 4.5), espero que esto te sirva de orientación:

OPEN nombre$ FOR INPUT AS #1
Abre el archivo nombre$ para lectura en modo secuencial (aplicable a archivos de texto).
Para leer datos del archivo:
INPUT #1, variable
Funciona igual que INPUT desde el teclado.

OPEN nombre$ FOR OUTPUT AS #1
Abre el archivo nombre$ para escritura en modo secuencial (archivos de texto). Si es un archivo ya existente, lo destruirá.
Para escribir datos en el archivo:
PRINT #1, variable
Funciona igual que PRINT. Si necesitas formato, utiliza PRINT #1 USING

OPEN nombre$ FOR APPEND AS #1
Abre el archivo nombre$ para escritura en modo secuencial, sin destruir lo anterior, para añadir contenido. Aparte de esto, funciona del mismo modo que el modo OUTPUT.

OPEN nombre$ FOR RANDOM AS #1
Abre el archivo nombre$ para lectura/escritura en modo aleatorio (archivos binarios).
Después de abrir el archivo, debes declarar el registro con sus correspondientes campos, con variables de cadena, indicando la longitud de cada campo. Por ejemplo, un registro en el que necesito guardar un entero de 16 bits, un float de 32 bits y una cadena de 10 caracteres debería declararse como
FIELD #1, 2 AS A$, 4 AS B$, 10 AS C$
La longitud de una línea estaba limitada a 255 caracteres, por lo que si tenías muchos campos en tu registro tenías que comenzar en una nueva línea, de este modo:
FIELD #1, 16 AS N$, ... (aquí sigo poniendo campos)
donde el primer campo de todos indicaba la longitud total declarada hasta ese momento (16 en este ejemplo).

Para leer o guardar datos, se hace con GET y PUT:
GET #1, N%, X, A$
Lee un número entero (en BASIC los enteros eran de 2 bytes y se indicaban con el sufijo % detrás del nombre de la variable), un número en coma flotante y una cadena de caracteres.
PUT #1, N%, X, A$
Escribe un número entero, un número en coma flotante y una cadena de 10 caracteres (tal como se definió en FIELD).

CLOSE #1
cierra el archivo (independientemente del modo de apertura).

El numerito (#1) indica el número de canal (por expresarlo de algún modo), creo que los valores válidos eran de 1 a 255 y el valor 0 era el correspondiente a la consola (entrada por teclado y salida por pantalla).

Esto supone que conoces la estructura del archivo que quieres leer/escribir. Si lo que quieres es abrir un archivo mediante la aplicación predeterminada desde QuickBasic, se podría hacer mediante una llamada a sistema, no recuerdo el comando exacto pero sería algo así como SYSTEM("Nombre_Aplicacion Nombre_Archivo"). Si lo que quieres es, dado el nombre del archivo, llamar a la aplicación que te lo abra, deberás tener en alguna parte una base de datos con las asociaciones entre tipos de archivo y las aplicaciones correspondientes.

No sé qué versión de QuickBasic utilizas, yo usaba (como ya indiqué) la 4.5 y era una aplicación para MS-DOS (16 bits), creo que luego ya apareció Visual Basic (para Windows).

Espero que te sirva de ayuda. Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Sebastian Melmoth (6 intervenciones) el 12/12/2009 11:17:26
Muchísimas gracias por la información; creo que me será muy útil. Efectivamente, estoy utilizando la versión 4.5 de QB.

Por cierto, una última consulta... (que ya no tiene que ver con QB) y que creo que es mucho más sencilla...
Con esta orden "erase unidad:\ruta\nombre de archivo.extensión" grabada en un archivo de extensión .bat puedo eliminar el archivo indicado.
Pues bien. Lo que yo quisiera es poder eliminar un archivo (en este caso un archivo .pptx) que está abierto. Es decir, necesitaría escribir la instrucción para cerrar el archivo primero, y luego aplicar el "erase,etc..." para borrarlo.
Mi consulta es... ¿puedo hacer tal cosa desde el bloc de notas y grabarlo como .bat y esperar que funcione? Supongo (o espero) que sí.
Y, si es así, ¿cuál es la instrucción para cerrar el archivo? (o debería dar una instrucción para cerrar la aplicación entera?) Se trata, insisto, de un archivo power point.

Una vez más, infinitas gracias por adelantado!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Capitan Kirk (5 intervenciones) el 13/12/2009 00:32:09
Para cerrar el archivo, ciertamente tendrás que hacerlo desde la aplicación que lo mantiene abierto. Desde luego que puedes editar archivos .bat desde el bloc de notas, al fin y al cabo son archivos de texto.

No existe una instrucción para cerrar un archivo abierto por una aplicación. El archivo debe cerrarlo la propia aplicación. Si lo mantiene abierto, lo normal es que se te deniegue el acceso cuando intentas borrarlo. Incluso puede ocurrir en ocasiones que no te permita el borrado aunque ya hayas salido de la aplicación que abrió el archivo, te deniega el acceso diciendo que el archivo está en uso por otra aplicación (cuando intentas borrar desde una ventana de Windows). En estas ocasiones, si abres una consola e intentas borrar el archivo desde la línea de comandos, tienes bastantes más posibilidades de éxito.

Por cierto, ya que haces referencia a un archivo con extensión .pptx, deduzco que probablemente estés utilizando Office 2007, lo que significa que tu SO debe ser Windows XP o posterior. Una aplicación de 16 bits (como es QuickBasic) se te va a quedar claramente corta, incluso en ocasiones puede que no te permita hacer ciertas cosas. Mira en estas direcciones que te indico, ahí podrás encontrar compiladores gratuitos de todo tipo (incluyendo BASIC):

http://www.thefreecountry.com/
http://www.freebyte.com/

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Sebastian Melmoth (6 intervenciones) el 15/12/2009 09:09:04
Vaya! Una información completísima. Te lo agradezco de verdad. Efectivamente, estoy utilizando XP en mi sobremesa y 7 en mi portátil, lo cual hace que sea un poco extraño trabajar con QB, pero, en fin, cosas de esta vida... Por cierto, quizá tengás una idea de cómo hacer lo siguiente. No sé... A mí no se me ocurre la forma: En una presentación Power Point del paquete de Office 2007, inserto un hipervínculo o bien una "acción" asociada a una figura para que me abra un archivo (en este caso un archivo .bat cuya doble función es 1º Cerrar Power Point, y 2º Eliminar el archivo en cuestión). El archivo .bat hace lo que tiene que hacer, pero me gustaría saber si puedo omitir los mensajes de advertencia o confirmación de apertura de dicho archivo por parte de PowerPoint. Existirá algún modo? Qué crees?

Por cierto, que no siempre el archivo .bat me elimina el archivo después de haber cerrado Powerpoint. Supongo que, en ocasiones, el sistema no ha tenido tiempo de cerrar la aplicación cuando recibe la orden de eliminar el archivo, y entonces ésta última instrucción no se ejecuta. De momento, lo estoy solucionando creando dos archivos .bat: el primero cierra la aplicación (taskkill...), y llama al segundo con "call", que es el que elimina el archivo. Así logro dar algo de tiempo al sistema. Pero, ¿se te ocurre algún otro modo que no suponga utilizar "pause"?

Bueno, muchísimas gracias por adelantado. Un saludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Capitan Kirk (5 intervenciones) el 18/12/2009 20:18:48
La verdad, sobre la primera pregunta poco o nada puedo decirte, no utilizo apenas PowerPoint, aunque me da que es el tipo de información que está escondida en lo más profundo de los menús de ayuda o manuales del programa, esa que te vuelves loco buscando y no la encuentras pero un día aparece por casualidad cuando buscabas otra cosa.

En cuanto a la segunda, lo que (supongo) que ocurre es que el archivo .bat se ejecuta antes de que PowerPoint ejecute su código de teminación, por lo que podría ocurrir que el archivo aún no esté disponible. No se me ocurre cómo evitarlo, a no ser que utilices la "chapuza innoble" de llamar a PowerPoint desde un archivo .bat y, después, en ese mismo .bat, mandes la orden de borrar. No es recomendable. Si te funciona como lo estás haciendo ahora, sin problemas, aplica la primera máxima de la programación: Si funciona, no lo toques.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por marcelo (33 intervenciones) el 14/12/2009 22:15:17
open"i",1,"d:\prueba.txt"
1 if eof(1) then close #1 : end
input #1,leer$
print leer$
goto 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Abrir archivos

Publicado por Sebastian Melmoth (6 intervenciones) el 15/12/2009 09:21:49
No me funsionó, güey!!!

De todos modos, gracias por la info.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar