SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: Abubillo en Viernes 29 de Agosto de 2003, 00:48
-
Buenas.
Alguien me puede decir como asignar extensión a un fichero creado mediante mi aplicación y que luego este fichero con doble click se abra directamente con mi aplicación?
Seguramente es una pregunta de novato, espero vuestra ayuda.
Gracias por la atención
-
Hola, no sé si me aclaro mucho con tu pregunta, pero cuando creas el fichero, metes directamnete en el nombre la extensión, por ejemplo
ofstream salida("prueba.ext", ios::out);
if (!salida) cerr << "no se puede abrir el ficheron";
-
Lo siento, lo envié sin querer, sigo
ofstream salida(fich_sal, ios:: out);
if (!salida) cerr << "no se puede abrir el ficheron";
En cuanto a lo de que se abra luego con tu programa al hacer click sobre él es cosa de windows, si es en tu PC es tan fácil como hacer sobre él click con el botón derecho, abrir con y elegir tu programa, además tienes que marcar la casilla de "Utilizar siempre este programa para esta extensión".
No estoy seguro de que sea lo que quieres, pero espero haberte sido de ayuda
Un saludo
-
Originalmente publicado por GTow
Lo siento, lo envié sin querer, sigo
ofstream salida(fich_sal, ios:: out);
if (!salida) cerr << "no se puede abrir el ficheron";
En cuanto a lo de que se abra luego con tu programa al hacer click sobre él es cosa de windows, si es en tu PC es tan fácil como hacer sobre él click con el botón derecho, abrir con y elegir tu programa, además tienes que marcar la casilla de "Utilizar siempre este programa para esta extensión".
No estoy seguro de que sea lo que quieres, pero espero haberte sido de ayuda
Un saludo
Cuando dije que creaba el fichero me referia que es el usuario del progrma quien lo crea desde la caja de dialogo CFileDialog. Es entonces cuando tengo la duda, si selecciona la extension en la casilla correspondiente ¿por que no asigan la extensión seleccionada a este fichero?!?
Hay mando el código para que lo ajeen
/* Función para guardar los ficheros*/
void CTCCCEView::OnArchivoGuardar()
{
CFileDialog dlgabrir(false, NULL,NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Ficheros de texto (*.txt) | *.txt | Informes de TCCCE (*.tcc) | *.tcc | Todos los ficheros (*.*) | *.*||", NULL);
// Visualizar la caja de dialogo común Abrir
if (dlgabrir.DoModal() == IDOK)
{
// Obtener el nombre del fichero
CString nomfich = dlgabrir.GetFileName();
GetDocument()->SetTitle(nomfich);
// Abrir el fichero para escribir
CFile fichero;
//Estructura para almacenar el estado del fichero
CFileStatus EstadoFi;
UINT mododeacceso = CFile::modeWrite;
if (!fichero.GetStatus(nomfich, EstadoFi))
mododeacceso |= CFile::modeCreate;
if (!fichero.Open(nomfich, mododeacceso))
{
AfxMessageBox("No se puede abrir el fichero apara escribir");
return;
}
// Escribir el texto en el fichero
CString texto;
GetWindowText(texto);
fichero.Write((const char*)texto, texto.GetLength());
fichero.Close();
}
}
void CTCCCEView::OnArchivoAbrir()
{
CFileDialog dlgabrir(true, NULL,NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"Ficheros de texto (*.txt)|*.txt|Informes de TCCCE (*.tcc)|*.tcc|Todos los ficheros (*.*)|*.*||", NULL);
// Visualizar la caja de dialogo común Abrir
if (dlgabrir.DoModal() == IDOK)
{
// Obtener el nombre del fichero
CString nomfich = dlgabrir.GetFileName();
GetDocument()->SetTitle(nomfich);
// Abrir el fichero para escribir
CFile fichero;
if (!fichero.Open(nomfich,CFile::modeRead))
{
AfxMessageBox("No se puede abrir el fichero apara escribir");
return;
}
// Leer el texto del fichero
UINT tam = (UINT)(fichero.GetLength());
char *texto = new char[tam +1];
fichero.Read(texto,tam);
texto[tam] = 0;
SetWindowText(texto);
delete [] texto;
fichero.Close();
}
}
Por favor si alguien me lo pude solucionar... Gracias por la atención