Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Ejercicio 92-93 Rust
- /*
- CONTENIDO DE Cargo.toml
- [package]
- name = "ejemplos"
- version = "0.1.0"
- edition = "2021"
- # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
- [dependencies]
- enum_str = "0.1.2"
- */
- #[allow(unused_imports)]
- #[warn(dead_code)]
- use std::fs::OpenOptions;
- use std::io::Write;
- use std::fs;
- //Una enumeracio de especialidades
- enum Esp {
- IT,RecursosHumanos,Marketing
- }
- //Estructura Empleado
- struct Empleado {
- nombre:String,
- edad:u32,
- especialidad:Esp
- }
- //Lee un fichero externo {nombre}
- fn lee (nombre:&String){
- let contenido=fs::read_to_string (nombre).expect ("Error");
- println! ("{}","\n");
- println! ("{}",contenido);
- }
- //Escribe en un fichero externo {nombre} los datos de una estructura
- fn escribe (nombre :&String,datos :&Empleado){
- let mut tmp:String=String::new();
- let mut fichero=OpenOptions::new()
- .create(true)
- .append(true)
- .open(nombre)
- .expect ("Error apertura ");
- tmp.push_str ( &(datos.nombre).to_string());
- tmp.push('\n');
- fichero.write_all (tmp.as_bytes()).expect ("Error escritura");
- tmp.push_str ( &((datos.edad).to_string()+"\n"));
- fichero.write_all (tmp.as_bytes()).expect ("Error escritura");
- match datos.especialidad{
- Esp::IT=>tmp.push_str ("IT"),
- Esp::RecursosHumanos => tmp.push_str ("Recursos Humanos"),
- Esp::Marketing =>tmp.push_str ( "Marketing"),
- }
- fichero.write_all (tmp.as_bytes()).expect ("Error escritura");
- }
- fn main (){
- //Nombre del fichero externo
- let fichero:String ="ficha.txt".to_string();
- //Crea un empleado con estructura Empleado
- let mut empleado = Empleado{
- nombre:"Tony".to_string(),
- edad:57,
- especialidad:Esp::IT
- };
- //Escribe este empleado
- escribe(&fichero ,&empleado);
- //Modifica el empleado
- empleado.nombre ="Icaro".to_string();
- empleado.edad =18;
- empleado.especialidad = Esp::RecursosHumanos;
- //Escribe
- escribe(&fichero,&empleado);
- //Modifica
- empleado.nombre ="F4LEC".to_string();
- empleado.edad=100;
- empleado.especialidad =Esp::Marketing;
- //Escribe
- escribe(&fichero,&empleado);
- //Lectura fichero externo
- lee (&fichero);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement