Tengo un problema con un programa que no encuentro la informacion

Iniciado por Fera Core, 11 Abril 2016, 00:51 AM

0 Miembros y 1 Visitante están viendo este tema.

Fera Core


Gracias por la ayuda. :D

aqui tengo el programa :
Código (cpp) [Seleccionar]

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <fstream.h>

void main(void)
{
    FILE *pf; // declaro mi archivo
    char *nombre;
    clrscr();
puts("Ingrese el nombre del archivo que desea abrir";
gets(nombre);
strcat(nombre, ".txt");
  pf=fopen("c:\\.txt","r");

if(pf==NULL)
{
perror("Error al abrir el archivo.doc");
getch();
}
    fclose(pf);
}


[MOD] Para publicar codigo usa etiquetas GeSHi, gracias.


MAFUS

Si es C no uses fstream.
Intenta no usar conio.h sólo es de Borland, cunado en tu trabajo no tengas TC++ estarás vendido.
En cambio, si es C++ intenta usar las librerías de C++ en vez de C.
Usar TC++ sí o sí. Sabía que en la facultad, almenos el C, lo están destrozando. Por eso a la gente no le gusta.

Gunhack

Cita de: Fera Core en 11 Abril 2016, 00:51 AM
Hola soy estudiante en ing. de computación no se si alguien les ha pasado que en la escuela le enseñan lo basico y despues te dejan hacer algo avanzado que ni siquiera en libros puedo encontrar algo de información.  :-(

Bueno eh estado intentando hacer una tarea que solicite al usuario el documento de word (.doc)  a abrirlo desde una usb. Y de eso lo que esta en su contenido hay que crear un respaldo en texto.

Lo ultimo es lo de menos, lo que no logro es cambiar la extensión de doc a txt, para abrir el archivo , porque solo se pueden abrir archivos en txt y el bin entonces pense que lo mejor es cambiar la extensión para abrirlo.

Lo estoy haciendo en tubo c++, el profe no me deja utilizar otro compilador. Eh usado dev c++ pero me da muchos errores en las librerias conio, fstream ,windows y muchas mas , aparte que no me deja crear graficos. Si conocen uno mejor que estos 2 y que sistema operativo deberia de usar . por favor comentarlo ya que turbo c no me gusta mucho tiene muchos bugs en w7 y en dev c muchas librerias no funcionan.



El problema no se refiere a que el programa haga la conversión automáticamente, lo que pide es que el usuario mismo haga su copia del documento .doc a .txt para poder leerlo ahora sí desde el programa,ya que por sí solo C o C++ no pueden leer archivos de word, o almenos no que yo sepa... Te comento tu código para decirte en que estás mal...  :P

Código (cpp) [Seleccionar]
FILE *pf; // declaro mi archivo
char *nombre;
clrscr();


En "char* nombre " No estás creando más que un apuntador y es imposible copiarle algo, tendrías que darle un tamaño específico...

Código (cpp) [Seleccionar]
char nombre[50];

Código (cpp) [Seleccionar]
if(pf==NULL)
{
 perror("Error al abrir el archivo.doc"); // ".txt!!! xD
 getch();
}




Para leerlo, ya teniendo el archivo .txt yo haría lo siguiente...

Código (cpp) [Seleccionar]

FILE *pf;
F = fopen(Nombre, "r");
if(F == NULL) {

   printf("Error al abrir el archivo!");
   return 0;
}
printf("Texto en: %s\n\n", Nombre);

while(!feof(F)) {

   char c = getc(F);
   printf("%c", c);
}

fclose(F);


Y lo implementaría de esta manera  :D

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <windows.h>

using namespace std;

void limpriarCadena(char cad[], int n) {

   for(int i = 0; i < n; i++) {

       cad[i] = '\0';
   }
}

int main() {

   char Unidad[3];
   char Ruta[150];
   char RutaAbsoluta[150];
   char NombreArchivo[50];
   FILE* F;

   do {
       system("cls");
       limpriarCadena(Unidad, 3);
       limpriarCadena(Ruta, 150);
       limpriarCadena(RutaAbsoluta, 150);
       limpriarCadena(NombreArchivo, 50);

       printf("-Ingresa la letra de la unidad de tu dispositivo(C,D,F...)\n-> ");
       scanf("%c", &Unidad[0]);
       strcat(Unidad, ":\\");
       strcpy(RutaAbsoluta, Unidad);

       printf("\n-Ingresa la ruta del archivo(deja en blanco si esta en la raiz)\n-> %s", Unidad);
       while(getchar()!='\n');
       gets(Ruta);
       if(strlen(Ruta)!=0) {

           strcat(RutaAbsoluta, Ruta);
           strcat(RutaAbsoluta, "\\");
       }

       printf("\nIngresa el nombre del archivo a abrir: ");
       gets(NombreArchivo);
       strcat(NombreArchivo, ".txt");
       strcat(RutaAbsoluta, NombreArchivo);

       F = fopen(RutaAbsoluta, "r");
       if(F == NULL) {

           printf("\n\nError al abrir el archivo! Intenta de nuevo...\nPresiona enter para continuar...");
           while(getchar()!='\n');
       }

   } while(F == NULL);

   system("cls");

   printf("Texto en: %s\n\n", RutaAbsoluta);

   while(!feof(F)) {

       char c = getc(F);
       printf("%c", c);
   }

   fclose(F);
}





Fera Core

Cita de: MAFUS en 11 Abril 2016, 16:19 PM
Si es C no uses fstream.
Intenta no usar conio.h sólo es de Borland, cunado en tu trabajo no tengas TC++ estarás vendido.
En cambio, si es C++ intenta usar las librerías de C++ en vez de C.
Usar TC++ sí o sí. Sabía que en la facultad, almenos el C, lo están destrozando. Por eso a la gente no le gusta.

si es c++, cuales son las librerias c++ , ami me han enseñado esas librerias para c++ y c

Fera Core

.
#4
.

Fera Core

#5
Muchas gracias Gunhack por ayudar a :D,  solo nesecitaba orientacion y consejos, ya que estas tareas son mas avanzado de lo que me enseñan.
Y aunque me hubieran acosenjado no hubiera entendido en su totalidad hay muchas cosas que no habia visto  :o :o :o :o, Ya solo tengo que entender el codigo que hiciste para aprender de ello.

voy en tercero y esto de estructura de datos y archivos. Son algo complicados ya veo porque nadie le habia entregado esa tarea al profe.En internet solo hay informacion basica sobre archivos.  

otra cosa en turbo c++ no me corre , solo corregi algunos detalles que conozco como que la libreria iostream y fstream no tengan la .h de encabezado XD
y en turbo c para limpiar pantalla es clrscr();

Si nesecitas un dibujo ,  un logo o una resmasterizacion  me mandas  un mensaje a facebook "Fera Core" ahi le hayo mas aunque estar programando eh perdido algo de practica.

por la escuela no eh tenido chance de hacer ilustraciones por eso tengo esos, pero ya en abril salgo de vacaciones ahi te puedo regresar el favor
aqui mi deviant art: http://feracore.deviantart.com/

Gracias por tu ayuda y tiempo :D

Fera Core

De hecho el objetivo es abrir un archivo doc XD
para eso nesecito convertirlo a txt y abre, despues hacer el respaldo en txt :D
el programa funciona  bien en dev c, busca los archivos de texto perfectamente. Que es mejor que turbo c++ para programar c++???

esta tarea es obligatorio usar turbo c++ , pero no me gusta turbo c.

Gunhack

Cita de: Fera Core en 13 Abril 2016, 03:23 AM
Muchas gracias Gunhack por ayudar a :D,  solo nesecitaba orientacion y consejos, ya que estas tareas son mas avanzado de lo que me enseñan.
Y aunque me hubieran acosenjado no hubiera entendido en su totalidad hay muchas cosas que no habia visto  :o :o :o :o, Ya solo tengo que entender el codigo que hiciste para aprender de ello.

voy en tercero y esto de estructura de datos y archivos. Son algo complicados ya veo porque nadie le habia entregado esa tarea al profe.En internet solo hay informacion basica sobre archivos.  

otra cosa en turbo c++ no me corre , solo corregi algunos detalles que conozco como que la libreria iostream y fstream no tengan la .h de encabezado XD
y en turbo c para limpiar pantalla es clrscr();

Si nesecitas un dibujo ,  un logo o una resmasterizacion  me mandas  un mensaje a facebook "Fera Core" ahi le hayo mas aunque estar programando eh perdido algo de practica.

por la escuela no eh tenido chance de hacer ilustraciones por eso tengo esos, pero ya en abril salgo de vacaciones ahi te puedo regresar el favor
aqui mi deviant art: http://feracore.deviantart.com/

Gracias por tu ayuda y tiempo :D

De nada jaja para eso estamos! Y no te preocupes lo hacemos por amor a arte :) Y si, olvidé mencionar que no estaba usando turbo c pero supiste arreglarlo  ;D

Cita de: Fera Core en 13 Abril 2016, 04:28 AM
De hecho el objetivo es abrir un archivo doc XD
para eso nesecito convertirlo a txt y abre, despues hacer el respaldo en txt :D
el programa funciona  bien en dev c, busca los archivos de texto perfectamente. Que es mejor que turbo c++ para programar c++???

esta tarea es obligatorio usar turbo c++ , pero no me gusta turbo c.

Te digo que en c++ no se puede, de verdad x3 o bueno por lo menos no encontré nada, si lo haces, hasmelo saber!  :P
Yo uso codeblocks para programar en c y c++ no sé que tan bien recomendado esté pero a mi me sirve muy bien y me siento cómodo xD

HardForo

Claro que puedes abrir y leer un archivo DOC / DOCX en C / C++, hay muchas librerias....


http://docxfactory.com/

y para .NET tienes esta:

https://github.com/WordDocX/DocX
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

Gunhack

Cita de: boctulus en 15 Abril 2016, 20:13 PM
Claro que puedes abrir y leer un archivo DOC / DOCX en C / C++, hay muchas librerias....


http://docxfactory.com/

y para .NET tienes esta:

https://github.com/WordDocX/DocX

Gracias hermano, yo no encontré nada así  :(