Está en la página 1de 8

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTRO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA
ARMADA NACAIONAL BOLIVARIANA
NÚCLEO FALCÓN - EXTENSIÓN PUNTO FIJO
INGIENERIA DE SISTEMAS – 5TO SEMESTRE
BASE DE DATOS

Unidad 3 parte
teórica

Realizado por:
Pedro Enrique Nuñez Esteves 28.046.182
El manejo de archivos en la programación es sumamente importante, sin
ella no podríamos crear aplicaciones que interactúen con los ficheros de
nuestra PC (antivirus, aplicaciones sociales y mas no existirían)… Los
archivos o ficheros son la forma en la que C++ permite el acceso al disco,
permitiendo así la interacción entre el código y la información del PC.
Librería:
fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos
desde el programar, tanto leer como escribir en ellos.
Funciones:
1. (constructor): Construir objeto y, opcionalmente, abrir archivo.
2. open: Abrir archivo.
3. is_open: Comprobar si un archivo está abierto.
4. close: Cerrar archivo.
5. rdbuf: Obtener el objeto filebuf asociado.
6. Operator=: Mover asignación.
7. Swap: Intercambiar elementos internos.
Algoritmo de creación, modificación y eliminación (tanto física como
lógica) de archivo:
#include <iostream>
#include <stdlib.h>
#include <fstream>

using namespace std;

void presentaMenuGeneral() {
string contenido;
int opcion;
do {
system("cls");
cout << "[:]Menu principal\n" << endl;
cout << "[1]Crear archivo de texto" << endl;
cout << "[2]Abrir archivo de texto" << endl;
cout << "[3]Modificar archivo de texto" << endl;
cout << "[4]Eliminar archivo de texto" << endl;
cout << "[0]Salir del programa\n" << endl;
cout << "Ingresa la opcion: ";
cin >> opcion;
switch (opcion) {
case 0:
break;
case 1:{
cout << "Ingresa el contenido del archivo: ";
cin.ignore();
getline(cin, contenido);
ofstream fs("nombre.txt");
fs << contenido << endl;
fs.close();
cout << "El archivo ha sido creado correctamente" << endl;
system("pause");
break;
}
case 2:{
ifstream fs("nombre.txt", ios::in);
char linea[128];
long contador = 0L;
if(fs.fail())
cerr << "El fichero no existe" << endl;
else
while(!fs.eof())
{
fs.getline(linea, sizeof(linea));
cout << linea << endl;
if((++contador % 24)==0)
{
cout << "continuar...";
cin.get();
}
}
fs.close();
system("pause");
break;
}
case 3:{
string buscar; // texto a buscar
string reemplazar; // reemplazar por

//ingresa textos
cout << "Ingresa el texto a buscar: ";
cin.ignore();
getline(cin, buscar);
cout << "Ingresa el texto para reemplazarlo: ";
cin.ignore();
getline(cin, reemplazar);

ifstream fs("nombre.txt"); //leer de este archivo


ofstream fstemp("nombretemp.txt"); //escribir en este archivo
if(!fs || !fstemp) //no se pudo abrir alguno de los 2
{
cout << "Error al abrir el archivo!" << endl;
break;
}

//modificar linea a linea


while(fs >> contenido)
{
if(contenido == buscar){ //se encontro
contenido = reemplazar; //reemplazar
}
fstemp << contenido << endl;
}

//reemplazar un archivo por otro


fs.close();
fstemp.close();
remove("nombre.txt"); // borrar el original
rename("nombretemp.txt", "nombre.txt"); // renombrar el temporal

//siguiendo la logica que usaste en el resto


cout << "El archivo ha sido modificado correctamente" << endl;
system("pause");
break;
}

case 4:{
remove("nombre.txt");
cout << "Borrado" << endl;
system("pause");
break;
}

default:
cout << "\nEl numero de opcion escrito no es valido\n" << endl;
system("pause");
}
} while (opcion != 0);
}

int main(){
presentaMenuGeneral();
return 0;
}
Referencias bibliográficas.
https://www.cplusplus.com/reference/fstream/fstream/

También podría gustarte