quien me ayuda con este codigo

Iniciado por _alexis_, 8 Mayo 2010, 01:09 AM

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

_alexis_

#include <windows.h>
#include <string>
#include<stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include<iostream>
#include<fstream>
using namespace std;
int copy();
int creardirecotio();
int crear( char *archivo, char *contenido );

   int main(void){
      int opc;
      char archivo[32], contenido[10];
      string name;
      string rent;
       ifstream infile;
       unsigned long bytesescritos;
        DWORD dwBytesRead = 0;
        char cNextChar;
      
   do{
   printf("**Menu**\n");
   printf("\n1-crear directorio");
   printf("\n2-crear fichero ");
   printf("\n3-mostrar contenido");
   printf("\n4-copiar fichero");
   printf("\n5-borrar directorio");
   printf("\ningrese opcion :");
   scanf("%i",&opc);
   }while(opc<1 || opc>5);
   
   switch(opc){
   
   case 1:
      creardirecotio();
      break;
   
   case 2:
     printf("ingrese palabra :");
      scanf("%s",contenido);
      crear(archivo,contenido);
      printf("fichero creado ");
   
   break;
   case 3:
       HANDLE hFile;
    ReadFile( hFile, &cNextChar, "archivo.txt", &dwBytesRead, NULL );
   break ;
   
    case 4:
      copy();
      printf("copiado");
    break ;
    case 5:
       DeleteFile("archivo.txt");
    break;
   
   }
      
   return 0;
}
int crear( char* archivo, char* contenido )
   {
      
       unsigned long bytesescritos;
      HANDLE hFile = CreateFile( "archivo.txt", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 ); 
      WriteFile( hFile, contenido, strlen( contenido ), &bytesescritos, 0 );
      CloseHandle( hFile );

      /*hFile = CreateFile( "archivo2.txt", GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 ); 
      WriteFile( hFile, cont, strlen( cont ), &bytesescritos, 0 );
      CloseHandle( hFile );*/
      return 0;
   }
int creardirecotio(){
   char str[100];
   LPSECURITY_ATTRIBUTES attr;
   attr = NULL;
   printf( "nombre de la carpeta a crear\n");
   printf( "Nombre:");
   fflush(stdin);
   fgets(str, sizeof(str),stdin);
   str[strlen(str)-1]='\0';
   CreateDirectory(str, attr);
   printf( "\nCarpeta creada!\n");
   return 0;
}
int copy(){
   int file1,file2;
   int total,nbytes;
   char buf[512];
   char *s;
   if ((file1 = open("archivo.txt",O_RDONLY)) == -1){
      s = "error al abrir el fichero de entrada. \n";
      write(2,s,strlen(s));
      exit(1);
   }
   if ((file2 = creat("archivo2.txt",0777)) == -1){
      s = "error al crear el fichero de salida.\n";
      write(2,s,strlen(s));
      exit(1);
   }
      nbytes = 512;
   while ((total = read(file1,buf,nbytes)) > 0)
   if (write(file2,buf,total) == -1){
      s = "error al escribir en el fichero.\n";
      write(2,s,strlen(s));
      exit(1);
   }
   if (total == -1){
      s = "error al leer del fichero.\n";
      write(2,s,strlen(s));
      exit(1);
   }
   if (close(file1) == -1){
      s = "error al cerrar el fichero de entrada.\n";
      write(2,s,strlen(s));
      exit(1);
   }
return 0;   
}
necesito q al mostrat el contenido del archivo sea con la llamada readfile pero no se como ocuparla quie me daria una manito o un ejemplo gracias :D

Castiblanco

Yo exactamente no se como funciona pero cuando tengo una duda similar busco en google Api X c++ o lo que sea.

http://msdn.microsoft.com/en-us/library/aa365467%28VS.85%29.aspx

No se si te sea de ayuda, léete eso :P

Saludos...

Littlehorse

#include <windows.h>
#include <string>
#include<stdio.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include<iostream>
#include<fstream>


Linda mezcla de headers. Empieza por revisar uno a uno y ver cuales necesitas y cuales no. (Te aseguro que hay varios que ahí no deberían estar)

Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Komodo

Usas C, deshazte de librerias innecesarias.

Y si usas C++ pues quita las que por tener iostream no las uses