[C con Clase] Varos problemas...

Alejandro alepelexo en yahoo.es
Dom Oct 7 15:24:39 CEST 2007


Muchas gracias por tu ayuda con el directorio del archivo, ya he arreglado ese tema. Para las dos siguiente preguntas, diré que programo en Windows pero no uso el API, uso Ansi C++ siguiendo vuestro curso. Voy a intentar explicar un poco mejor la pregunta 2:

Yo tengo un array de 10 X 10 y se representa en pantalla en 10 filas de 10 elementos. Lo imprimo en pantalla. Modifico por ejemplo la posición [2][5] del array y la intercambio con la [3][5]. Una vez hecho esto, ¿puedo imprimir el nuevo array por encima del anterior de forma que parezca que sólo se modificó la posición 5 de las filas 3 y 4? Y para esto tendría que usar las flechas, ya que si el usuario pulsa derecha, el caracter se intercambiaría con el de su derecha, lo que nos lleva a la 3ª pregunta.

Espero haberme explicado un poco mejor ahora. Muchas gracias por vuestra paciencia y un saludo.

El pasado 2007-10-07 10:24:55, Salvador Pozo escribió:
 
SP> El pasado 2007-10-07 09:28:34, Alejandro escribió:
SP>  
SP> A> Hola lista:
SP> Hola:
SP> A> 1. ¿Cómo creo archivos en directorios distintos al del programa?...
SP> A>       FILE *fichero;
SP> A>       fichero = fopen("\Archivos\archivo.txt", "a");
SP> A> Y Windows me da el problema "Prueba.exe ha detectado..." creo que ya nos lo conocemos todos. ¿Alguna solución?
SP> Hay varios errores en tu forma de abrir el fichero:
SP> 1) Las barras '\' deben duplicarse. Esto se debe a que ese carácter se usa para formar secuencias de escape, y si se quiere usar de forma literal debe usarse la secuencia de escape correspondiente '\\'. Verás que a pesar de parecer dos caracteres se puede usar la notación '' que corresponde a caracteres únicos. Tu cadena de nombre de fichero quedaría "\\Archivos\\archivo.txt"
SP> 2) Windows no es muy listo a la hora de reconocer caminos absolutos, necesita que le digas el nombre de la unidad de disco, en este caso podría ser: "c:\\Archivos\\archivo.txt". Pero esto es demasiado drástico, ya que no hay manera de saber en qué unidad de disco puede ejecutarse el mismo programa en otros ordenadores.
SP> 3) Además, fopen no creará los directorios que no existan, de modo que si C:\Archivos no existe, el programa fallará de nuevo.
SP> 4) Es mejor usar caminos relativos, para eso usamos el "." para referirnos al directorio actual (en el que se ejecuta la aplicación a no ser que se indique lo contrario, o ".." para el directorio padre. Tu camino puede quedar así:
SP> ".\\Archivos\\archivo.txt"
SP> A> 2. ¿Se pueden borrar caracteres sueltos de un programa? Por ejemplo, ¿puedo borrar el caracter que está en la segunda fila en la séptima posición y moverlo a la tercera fila en la misma séptima posición?
SP> Esta pregunta no sé si la entiendo. Me parece que quieres que tu programa lea un carácter desde la consola de la pantalla y no inserte en otro lugar. Si es así, todo depende de cómo estés programando. Me refiero al entorno, a si usas el API de Windows, etc.
SP> Si lo que quieres es hacer cosas del tipo que se hacen en un editor de textos, esas cosas no se hacen directamente sobre la pantalla, sino que es al contrario, se realizan en memoria y la pantalla se actualiza cuando es necesario.
SP> A> 3 (y última). ¿Cómo detecto si el usuario pulsa por ejemplo la flecha hacia abajo o el botón Escape?
SP> Esto también depende del entorno en el que programes, ya que no existen funciones estándar para detectar esas teclas.
SP> Hasta pronto.
SP> -- 
SP> Salvador Pozo (Administrador)
SP> mailto:salvador en conclase.net
SP> _______________________________________________
SP> Lista de correo Cconclase Cconclase en listas.conclase.net
SP> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
SP> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


Más información sobre la lista de distribución Cconclase