Persistir Datos En Una Base De Datos De Amigos En C#

Este programa amplía la base de datos de amigos añadiendo la función de cargar y guardar datos desde y hacia un archivo. Al iniciar la aplicación, el programa buscará un archivo existente y, si lo encuentra, cargará los datos. Durante la sesión, los usuarios pueden añadir nuevos amigos a la base de datos. Al finalizar la sesión, el programa guardará la base de datos actualizada en el archivo para que los datos introducidos estén disponibles para la siguiente sesión.



Grupo

Manejo de archivos en C#

Objectivo

1. Al iniciar el programa, comprobará si existe el archivo "friends.db".
2. Si existe, cargará la lista de amigos desde allí.
3. El usuario puede añadir amigos a la base de datos durante la sesión.
4. Al salir de la sesión, el programa guardará la lista de amigos actualizada en "friends.db".
5. La próxima vez que el programa se inicie, cargará automáticamente los datos de "friends.db".

Amplíe la base de datos "friends" para que cargue los datos del archivo al inicio de cada sesión (si existe) y los guarde al finalizar. Por lo tanto, los datos introducidos en una sesión deben estar disponibles para la siguiente.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.Collections.Generic;
using System.IO;

class Friend
{
    public string Name { get; set; }
    public int Age { get; set; }

    // Constructor to initialize a new Friend object
    public Friend(string name, int age)
    {
        Name = name;
        Age = age;
    }

    // Method to convert Friend object to a string format suitable for saving to a file
    public override string ToString()
    {
        return $"{Name},{Age}";
    }
}

class FriendsDatabase
{
    private List friends;

    // Constructor to initialize the friends list
    public FriendsDatabase()
    {
        friends = new List();
    }

    // Method to load friends data from a file
    public void LoadFromFile(string fileName)
    {
        if (File.Exists(fileName))
        {
            // Read all lines from the file
            string[] lines = File.ReadAllLines(fileName);

            // Iterate through each line and create a new Friend object
            foreach (var line in lines)
            {
                string[] parts = line.Split(',');
                if (parts.Length == 2)
                {
                    string name = parts[0];
                    int age = int.Parse(parts[1]);
                    friends.Add(new Friend(name, age));
                }
            }
        }
    }

    // Method to save friends data to a file
    public void SaveToFile(string fileName)
    {
        List lines = new List();

        // Convert each friend object to a string and add to the list
        foreach (var friend in friends)
        {
            lines.Add(friend.ToString());
        }

        // Write all lines to the file
        File.WriteAllLines(fileName, lines);
    }

    // Method to display all friends
    public void DisplayFriends()
    {
        Console.WriteLine("Friends List:");
        foreach (var friend in friends)
        {
            Console.WriteLine($"Name: {friend.Name}, Age: {friend.Age}");
        }
    }

    // Method to add a new friend
    public void AddFriend(string name, int age)
    {
        friends.Add(new Friend(name, age));
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of the FriendsDatabase class
        FriendsDatabase database = new FriendsDatabase();

        // File name where friends data will be saved and loaded from
        string fileName = "friends.db";

        // Step 1: Load data from file if it exists
        database.LoadFromFile(fileName);

        // Step 2: Display the current friends list
        database.DisplayFriends();

        // Step 3: Ask user if they want to add a new friend
        Console.WriteLine("\nDo you want to add a new friend? (yes/no): ");
        string response = Console.ReadLine().ToLower();

        if (response == "yes")
        {
            Console.Write("Enter the friend's name: ");
            string name = Console.ReadLine();

            Console.Write("Enter the friend's age: ");
            int age = int.Parse(Console.ReadLine());

            // Add the new friend to the database
            database.AddFriend(name, age);
        }

        // Step 4: Save updated data to file when the session ends
        database.SaveToFile(fileName);

        // Step 5: Display the final list of friends
        Console.WriteLine("\nUpdated Friends List:");
        database.DisplayFriends();
    }
}

 Output

//If the program is run and the file friends.db contains the following:
Alice,25
Bob,30

//The output will be:
Friends List:
Name: Alice, Age: 25
Name: Bob, Age: 30

Do you want to add a new friend? (yes/no): yes
Enter the friend's name: Charlie
Enter the friend's age: 22

Updated Friends List:
Name: Alice, Age: 25
Name: Bob, Age: 30
Name: Charlie, Age: 22

Comparte este ejercicio de C#

Practica más ejercicios C# de Manejo de archivos en C#

¡Explora nuestro conjunto de ejercicios de práctica de C#! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C#..