• Miércoles 1 de Mayo de 2024, 20:03

Autor Tema:  Re: como se asigna extensión a un fichero  (Leído 2072 veces)

Abubillo

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: como se asigna extensión a un fichero
« en: Viernes 29 de Agosto de 2003, 00:48 »
0
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
Un saludo desde Los Anguijes (Albacete)
SI ALGUIEN LO CONOCE LE DOY UN PREMIO!!!!

GTow

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: como se asigna extensión a un fichero
« Respuesta #1 en: Sábado 30 de Agosto de 2003, 23:17 »
0
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";

GTow

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: como se asigna extensión a un fichero
« Respuesta #2 en: Sábado 30 de Agosto de 2003, 23:20 »
0
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

Abubillo

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
como se asigna extensión a un fichero
« Respuesta #3 en: Domingo 31 de Agosto de 2003, 03:01 »
0
Citar
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
Un saludo desde Los Anguijes (Albacete)
SI ALGUIEN LO CONOCE LE DOY UN PREMIO!!!!