Skip to content

Commit c9fd6f6

Browse files
authored
Merge pull request mouredev#2333 from N0HagoNada/main
#11 - go
2 parents 9cd66f2 + 04c6aa3 commit c9fd6f6

File tree

2 files changed

+412
-0
lines changed

2 files changed

+412
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
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

Comments
 (0)