Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #[warn(unused_variables)]
- use std::io::Write;
- use std::fs::OpenOptions;
- //use struct_iterable::Iterable;
- //Enumeracion especialidad
- enum Especialidad{
- IT,RecursosHumanos,Marketing
- }
- //Enumeracion de los meses
- #[derive(Copy, Clone)]
- enum Meses{
- Enero,Febrero,Marzo,Abril,Mayo,Junio,
- Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre
- }
- //Estructura Empleado
- struct Empleado {
- nombre:String,
- apellido:String,
- edad:u8,
- especialidad:Especialidad,
- mes:Meses
- }
- //Devuelve un String con los datos del empleado
- fn dato_empleado(empleado:&Empleado)->String{
- let mut tmp:String=Default::default();
- tmp += &empleado.nombre ;
- tmp +=" , ";
- tmp += &empleado.apellido;
- tmp +=" , ";
- tmp += &empleado.edad.to_string();
- tmp += " , ";
- //tmp += &empleado.especialidad.to_string();
- match &empleado.especialidad {
- Especialidad::IT=>{
- tmp+=" It ";
- },
- Especialidad::RecursosHumanos=>{
- tmp+=" Recursos Humanos "
- },
- Especialidad::Marketing =>{
- tmp+= " Marketing ";
- }
- }
- tmp += " , ";
- tmp += (((empleado.mes)as u8).to_string()).as_str() ;
- tmp +="\n";
- tmp
- }
- //Escribe en un fichero "nombre" los datos del empleado
- fn escribe_fichero(nombre: &String,datos :&String) ->std::io::Result<()>{
- let mut fichero= OpenOptions::new()
- .write(true)
- .append(true)
- .create(true)
- .open(nombre)?;
- fichero.write_all(datos.as_bytes())?;
- Ok(())
- }
- fn main (){
- //Nombre del fichero a escribir
- let nombre_fichero:String ="ejemplo.txt".to_string();
- //Crea 3 empleados
- let empleado= Empleado{
- nombre:String::from ("Tony"),
- apellido:String::from ("Villa"),
- edad:55,
- especialidad:Especialidad::RecursosHumanos,
- mes:Meses::Julio
- };
- let empleado2= Empleado{
- nombre:String::from ("Gilles"),
- apellido:String::from ("Pignatta"),
- edad:56,
- especialidad:Especialidad::Marketing,
- mes:Meses::Abril
- };
- let empleado3=Empleado{
- nombre:String::from ("Frank"),
- apellido:String::from ("Clerissi"),
- edad:57,
- especialidad:Especialidad::IT,
- mes:Meses::Febrero
- };
- //Escribe en el fichero los datos del empleado
- let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado));
- let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado2));
- let _= escribe_fichero(&nombre_fichero,& dato_empleado(&empleado3));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement