elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  trabajo con archivos..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: trabajo con archivos..  (Leído 2,109 veces)
ginny1685

Desconectado Desconectado

Mensajes: 5


Ver Perfil
trabajo con archivos..
« en: 27 Abril 2012, 03:16 am »

Hola, debo hacer un codigo en el que se lean las palabras que contiene un archivo de n extensión determinada por el usuario, y luego sólo ésts se impriman en otro archivo..

eeh realizado ésto de código, pero me marca errores.. :S
como soy novata, no se si puedan darle una vista porfis :)

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void main (){
     FILE*original, *copia;
     int countchar=0, countword=0, countline=0, i=0;
     char c, palabras[5];
     original = fopen("copia.txt", "w+");
     while ((c =fgetc (original))! = EOF){
           swith (c){
                 case "\n"
                 case"\0"
                 case"\13"
                 fputc(c, copia);
                 case " ";
                 if (countchar==5){
                 for (i=0, i<5; i++){
                     fputc(palabra, copia);
                     countword++;
                     }
                     if (c==" ") fput(c, copia);
                     }
                     countchar =0;
                     break;
                     default;
                     if (countchar<5)
                     palabra[countchar] =c;
                     countchar++;
                     }
                     }
                     fclose(original);
                     fclose(copia);
                     printf("Palabras encontradas:%d \n", countword);
                     system("pause);
                     }
           



En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: trabajo con archivos..
« Respuesta #1 en: 27 Abril 2012, 04:08 am »

Hola ginny1685. Por empezar tenés varios errores básicos:
Código
  1. swith( c ) {

Debería ser:
Código
  1. switch( c ) { // falta una letra C

En este código:
Código
  1. case "\n"
  2. case "\0"
  3. case "\13"

Faltan los dos puntos de cada case y seguramente querés agregarles un break porque sino pasa de largo. Además de que lleva comillas simples, porque comparás un solo carácter.
Código
  1. case '\n':
  2.     // hacer cosas
  3. break;
  4. case '\0':
  5.     // hacer cosas
  6. break;
  7. case '\13':
  8.     // hacer cosas
  9. break;


En línea

Odai

Desconectado Desconectado

Mensajes: 25


Odai


Ver Perfil
Re: trabajo con archivos..
« Respuesta #2 en: 27 Abril 2012, 14:21 pm »


#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void main (){
     FILE*original, *copia;
     int countchar=0, countword=0, countline=0, i=0;
     char c, palabras[5];
     original = fopen("copia.txt", "w+");
     while ((c =fgetc (original))! = EOF){
           swith (c){   
                 case "\n"
                 case"\0"
                 case"\13"
                 fputc(c, copia);
                 case " ";
                 if (countchar==5){
                 for (i=0, i<5; i++){
                     fputc(palabra, copia);
                     countword++;
                     }
                     if (c==" ") fput(c,"%c" copia);
                     }
                     countchar =0;
                     break;
                     default;
                     if (countchar<5)
                     palabra[countchar] =c;
                     countchar++;
                     }
                     }
                     fclose(original);
                     fclose(copia);
                     printf("Palabras encontradas:%d \n", countword);
                     system("pause);
                     }
           
mmm no entiendo para q los casos... te falta mandar fputc el char q vas a escribir... para mi q los casos no son necesarios, ya que no realizas nada con ellos :)
En línea

Tengo demasiadas fantasías para ser una ama de casa.
Marilyn Monroe
s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: trabajo con archivos..
« Respuesta #3 en: 28 Abril 2012, 08:46 am »

A como veo lo que quiere es solo hacer una copia del archivo y luego contar el total de palabras encontradas en el.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6. FILE *original;
  7. FILE *copia;
  8. int palabras = 0, error;
  9. char nombre[20], copianombre[40] = "copia_", linea[100], *pch;
  10. do{
  11. error = 0;
  12. cout << "Nombre del archivo (sin inclui .txt): ";
  13. cin >> nombre;
  14. strcat(nombre, ".txt");
  15. original = fopen(nombre, "r");
  16. if(original == NULL)
  17. {
  18. error = 1;
  19. cout << "El archivo no existe, o no se logro abrir" << endl;
  20. }
  21. }while(error == 1);
  22. strcat(copianombre, nombre);
  23. copia = fopen(copianombre, "w+");
  24. while(fgets(linea, 100, original) != NULL)
  25. {
  26. fputs(linea, copia);
  27. pch = strtok(linea, " \n");
  28. while(pch != NULL)
  29. {
  30. palabras++;
  31. pch = strtok(NULL, " \n");
  32. }
  33. }
  34. fclose(original);
  35. fclose(copia);
  36. cout << "Total de Palabras: " << palabras;
  37. cin.get();cin.get();
  38. return 0;
  39. }
En línea

ginny1685

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: trabajo con archivos..
« Respuesta #4 en: 28 Abril 2012, 15:50 pm »

hola.. gracias por sus ayudas, y creo que no me di a entender bien ...

lo que necesito es que primero el programa le pregunte al usuario de cuantas letras deben ser ls palabras a buscar, luego que busque en un archivo todas las palabras de la extension adecuada y las imprima en otro archivo en el mismo lugar donde las encontró en el archivo original..

y como extra, el nuevo archivo que se crea debe llevar como nombre el numero de caracteres que tienen las palabras que se buscaron :S

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Trabajo con archivos
Programación Visual Basic
Overlord 0 1,138 Último mensaje 30 Noviembre 2005, 19:45 pm
por Overlord
Trabajo de 4rt
Foro Libre
davasanz22 2 2,385 Último mensaje 17 Febrero 2011, 15:23 pm
por Spider-Net
Carding Trabajo
Hacking
chaams03 5 15,227 Último mensaje 22 Agosto 2022, 11:58 am
por ElMag0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines