projet Fichiers structurés
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

Partie 7: Le rajout des fonctions

2 participants

Aller en bas

Partie 7: Le rajout des fonctions Empty Partie 7: Le rajout des fonctions

Message  Marc Mar 13 Mai - 22:05

idée numéro 1:
description des fonction:
Description des nouvelles fonction, leur utilité.... et pk ce choix
A completer
idée numéro 2:
Test du programme:
Re test du programme avec erreur/solution
a completer
Marc
Marc
Admin

Messages : 33
Date d'inscription : 30/01/2008

Revenir en haut Aller en bas

Partie 7: Le rajout des fonctions Empty Re: Partie 7: Le rajout des fonctions

Message  amine Mar 13 Mai - 22:38

(ptin pour les nouvelles fonctions je vais me lacher xD)
les fonctions de bases, ajouter une donnée dans notre base de donnée, ou creer une table de donnée etait indispensable (c'est la fonction vitale pour les SGBD)
ensuite, il faillait enrichir ceci par des fonction plus pratiques, exemple, pouvoir ajouter des colonnes de données, supprimer des colonnes/lignes de données.
c'etait alors des fonctions de base.
Pour des fonctions plus pratiques, nous avons donc mis en place une fonction pour trier notre base de donnée (BDD) en fonction d'une colonne choisie par l'utilisateur (cet algorithme est un algorithmetri par fusion, tres efficace).
une fonction encore, pour modifier des champs a la volé, ( tous les champs excepté les clefs... mais je sais pas pourquoi en fait -_-" )
la fonction de recherche de lignes de données qui contient un mot ou une phrase que l'utilisateur souhaite retrouver... (par exemple une ligne qui contient la lettre "z")
fonction (encore experimentale) la capacité de lancer notre programme en mode server, et mettre des clients dans des postes distants qui vont pouvoir executer a distance des commandes... C'est commandes sont de type SQL tres basique.
pour interpreter ces commandes, il a fallu implementer une methode, qui ne renvoie pas de resultat (tres delicat pour intercepter un tableau dynamique de données via le reseau.. aîe) donc ce sont des fonction basique "sort nomDeLaColonne" pour trier un champs, "create nomTable" pour creer une nouvelle table, "drop nomTable" pour effacer le contenu d'une table. et de nouvelles fonctions sont en cours d'implementation.

les tests des programmes se fesaient sur une table "test" pour voir le comportement de chaque fontions depuis le mode console (le noyau directement) et depuis l'interface graphique pour detecter des comportements anormaux.... apres je sais plus scratch
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

Partie 7: Le rajout des fonctions Empty Re: Partie 7: Le rajout des fonctions

Message  amine Mer 14 Mai - 22:05

pour enrichir notre programme il fallait qu'il soit fiable et sur, et qui peut mieu conserver les données a l'abris des crash.
quelques fonctions qui rendent ceci possible, c'est la creation d'un fichier de sauvegarde de chaque fichier contenant les données. a chaque lancement du programme (et notamment a chaque ouverture de table), ce fichier sera supprimé lors de la fermeture "propre" du programme, ce qui rend notre fichier de sauvegarde inutile et surtout obsolete compte tenu des nouveaux changements. si le programme est fermé de maniere anormale (suite a un crash etc...) le fichier de sauvegarde est alors gardé et l'utilisateur dans ce cas peut choisir l'option restaurer la table de donnée,
Le fonctionnement interne ce ce programme, (plus technique):
il charge le fichier binaire de données (test.db par exemple) et crée un nouveau fichier binaire aussi, test.db.bak, ensuite on copie octet par octet le contenu du fichier test.db

Code:


ifstream fch_db(dataPath.c_str(), ios::binary);
        if(fch_db)
    {
        string bakPath = dataPath+".bak";
        ofstream bak(bakPath.c_str(), std::ios::binary);
        bak << fch_db.rdbuf();
        fch_db.close();
        bak.close();
    }



la possibilité d'annuler des changements effectués,
la technique utilisée est d'empiler les changement dans une pile (la clé de la ligne ou se trouve le champs changé, le nom de sa colonne, et la valeur changée) sous forme d'une seule chaine de caracter qui regroupe les 3 parametres et les separent avec des ";"
pour recuperer les données, il suffit de dire annuler le changement, et on depile tant qu'il annule.
dans le cas où une ligne est supprimée, on vide la pile car, si la donnée changée se trouvait dans la ligne supprimée, pour annuler le changement (comme la fonction annuler n'est autre que l'appel a la fonction modifierChamps() avec en parametre l'ancienne valeur) et comme la recherche se fait sur des clefs... la restauration n'est donc pas possible dans ce cas, c'est pour cela que lors de la suppression d'une ligne on vide la pile (d'ailleur je bosse dessus pour le rendre possible)
amine
amine
Admin

Messages : 124
Date d'inscription : 30/01/2008
Age : 35
Localisation : Montpellier

https://projet.bbactif.com

Revenir en haut Aller en bas

Partie 7: Le rajout des fonctions Empty Re: Partie 7: Le rajout des fonctions

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser