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