1
+ #include <stdio.h>
2
+ #include <windows.h>
3
+ /*
4
+ * IMPORTANTE: Sólo debes subir el fichero de código como parte del ejercicio.
5
+ *
6
+ * EJERCICIO:
7
+ * Desarrolla un programa capaz de crear un archivo que se llame como
8
+ * tu usuario de GitHub y tenga la extensión .txt.
9
+ * Añade varias líneas en ese fichero:
10
+ * - Tu nombre.
11
+ * - Edad.
12
+ * - Lenguaje de programación favorito.
13
+ * Imprime el contenido.
14
+ * Borra el fichero.
15
+ */
16
+ void BorrarArchivo (const char * nombreArchivo );
17
+ void LeerArchivo (const char * nombreArchivo );
18
+
19
+ int main ()
20
+ {
21
+ HANDLE hFile ;
22
+ DWORD dwBytesWritten = 0 ;
23
+ char data [] = "Mi nombre es: john \n Edad: 21 \n Lenguaje de programción favorito: c" ;
24
+ const char * nombreArchivo = "N0HagoNada.txt" ;
25
+ hFile = CreateFile (nombreArchivo , // Nombre del archivo
26
+ GENERIC_WRITE , // Apertura para escritura
27
+ 0 ,
28
+ NULL , // Atributos de seguridad predeterminados
29
+ CREATE_ALWAYS ,
30
+ FILE_ATTRIBUTE_NORMAL ,
31
+ NULL );
32
+ if (hFile == INVALID_HANDLE_VALUE )
33
+ {
34
+ printf ("Error al crear el archivo\n" );
35
+ return 1 ;
36
+ }
37
+
38
+ // Escribir en el archivo
39
+ BOOL bErrorFlag = WriteFile (
40
+ hFile , // Manejador del archivo
41
+ data , // Buffer de datos a escribir
42
+ strlen (data ), // Número de bytes a escribir
43
+ & dwBytesWritten , // Número de bytes escritos
44
+ NULL ); // Sin operación de escritura superpuesta
45
+
46
+ if (FALSE == bErrorFlag )
47
+ {
48
+ printf ("Error al escribir en el archivo\n" );
49
+ }
50
+ else
51
+ {
52
+ if (dwBytesWritten != strlen (data ))
53
+ {
54
+ // No se escribieron todos los bytes
55
+ printf ("Error: no todos los bytes fueron escritos\n" );
56
+ }
57
+ else
58
+ {
59
+ // Escritura exitosa
60
+ printf ("Se escribieron %d bytes\n" , dwBytesWritten );
61
+ }
62
+ }
63
+
64
+ CloseHandle (hFile );
65
+
66
+ LeerArchivo (nombreArchivo );
67
+
68
+ // Borrar el archivo.
69
+ BorrarArchivo (nombreArchivo );
70
+ return 0 ;
71
+ }
72
+
73
+ void BorrarArchivo (const char * nombreArchivo )
74
+ {
75
+ BOOL bErrorFlag = DeleteFileA (nombreArchivo );
76
+
77
+ if (!bErrorFlag )
78
+ {
79
+ printf ("No se puede borrar el archivo.\n" );
80
+ }
81
+ else
82
+ {
83
+ printf ("Archivo borrado exitosamente.\n" );
84
+ }
85
+ }
86
+ void LeerArchivo (const char * nombreArchivo )
87
+ {
88
+ HANDLE hFile ;
89
+ DWORD dwBytesRead = 0 ;
90
+ char buffer [1024 ] = {0 }; // Asumiendo que el archivo es menor que 1024 bytes para simplificar
91
+
92
+ hFile = CreateFile (nombreArchivo ,
93
+ GENERIC_READ ,
94
+ FILE_SHARE_READ ,
95
+ NULL ,
96
+ OPEN_EXISTING ,
97
+ FILE_ATTRIBUTE_NORMAL ,
98
+ NULL );
99
+
100
+ if (hFile == INVALID_HANDLE_VALUE )
101
+ {
102
+ printf ("No se puede abrir el archivo para leer.\n" );
103
+ return ;
104
+ }
105
+
106
+ BOOL bErrorFlag = ReadFile (hFile , buffer , 1024 , & dwBytesRead , NULL );
107
+
108
+ if (!bErrorFlag )
109
+ {
110
+ printf ("No se puede leer el archivo.\n" );
111
+ }
112
+ else
113
+ {
114
+ printf ("Contenido del archivo:\n%s\n" , buffer );
115
+ }
116
+
117
+ CloseHandle (hFile );
118
+ }
0 commit comments