les changements (changelog)
+2
davy
amine
6 participants
Page 3 sur 4
Page 3 sur 4 • 1, 2, 3, 4
Re: les changements (changelog)
salut
un changement dans la classe Base.
le constructeur avec parametre string devient void setTabName(strng) (comme tu l'a dit Nico) qui a exactement les memes fonctions, c'est juste la signature qui change (pour faciliter la communication depuis une autre classe.
pour aujourd'hui, j'essaye de virer tous les cout et les cin de Base. pour les mettre dans une classe Console a part
bye
un changement dans la classe Base.
le constructeur avec parametre string devient void setTabName(strng) (comme tu l'a dit Nico) qui a exactement les memes fonctions, c'est juste la signature qui change (pour faciliter la communication depuis une autre classe.
pour aujourd'hui, j'essaye de virer tous les cout et les cin de Base. pour les mettre dans une classe Console a part
bye
Re: les changements (changelog)
ah cool, ça évitera de le rajouter à chaque fois.
Par contre il y a un vrai problème quand on utilise l'interface : dès qu'on change de table à afficher, ça fait un nouveau setTableName.
problème, toutes les clés de la table précédentes sont gardées en mémoire.
en gros, on ouvre la table "table1" qui contient trois donées, avec comme clés 1, 2 et 3
ensuite on ouvre la table "table2", si je veux ajouter une donnée avec comme clé 2, ça passera pas
et quand j'appelle le destructeur, tout plante, du coups faudrait ajouter quelque chose en début du setTableName qui réinitialise tout...
Par contre il y a un vrai problème quand on utilise l'interface : dès qu'on change de table à afficher, ça fait un nouveau setTableName.
problème, toutes les clés de la table précédentes sont gardées en mémoire.
en gros, on ouvre la table "table1" qui contient trois donées, avec comme clés 1, 2 et 3
ensuite on ouvre la table "table2", si je veux ajouter une donnée avec comme clé 2, ça passera pas
et quand j'appelle le destructeur, tout plante, du coups faudrait ajouter quelque chose en début du setTableName qui réinitialise tout...
nico- Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier
Re: les changements (changelog)
en gros, faut rajouter un truc dans setTabName(string) au debut qui ecrase toute la map, c'est bien ça?
si oui, je pense que ça posera pas de problemes
EDIT: j'ai modifié
je pense que ça fera l'affaire ça, a tester.
sinon moi j'ai ajouter une classe Lire pour remplacer le bon vieu cin (parce que le cin il gere pas des entrées avec des espaces) et aussi une classe Console qui remplacera tous les cin et cout dans la Base, et qui jouera le role de l'interface graphique quand on lance le prog en mode texte.
et Bonus, des couleurs en console (que sous Unix)
http://amineb.e3b.org/projet/FCHConsole.png
si oui, je pense que ça posera pas de problemes
EDIT: j'ai modifié
- Code:
void Base::setTabName(string tabName)
{
//on ecrase le contenu de la key_map qui peut garder le contenu de l'ancienne table.
key_map.clear();
clairFile = "clair.txt";
dataPath = "data/"+tabName+".db";
structPath = "data/"+tabName+".struct";
sizeFile = "data/"+tabName+".size";
nbCh = getNbChamps();
je pense que ça fera l'affaire ça, a tester.
sinon moi j'ai ajouter une classe Lire pour remplacer le bon vieu cin (parce que le cin il gere pas des entrées avec des espaces) et aussi une classe Console qui remplacera tous les cin et cout dans la Base, et qui jouera le role de l'interface graphique quand on lance le prog en mode texte.
et Bonus, des couleurs en console (que sous Unix)
http://amineb.e3b.org/projet/FCHConsole.png
Re: les changements (changelog)
en effet, ça règle le problème, merci
sympa l'idée de remplacer les cin et les cout
sympa l'idée de remplacer les cin et les cout
nico- Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier
Re: les changements (changelog)
Il existe une librairie pour faire l'écriture en couleur dans la console mais je sais plus si c'est en C ou C++.
Sinon ja'i mis ubuntu avec qdevelop donc je vais regarder les codes voir si de l'amélioration et possible et savoir quels sont les options manquantes.
Ton key_map.clear(), ne serait pas mieux dans le destructeur de la classe Base ?
Sinon ja'i mis ubuntu avec qdevelop donc je vais regarder les codes voir si de l'amélioration et possible et savoir quels sont les options manquantes.
Ton key_map.clear(), ne serait pas mieux dans le destructeur de la classe Base ?
davy- Messages : 26
Date d'inscription : 31/01/2008
Re: les changements (changelog)
pour le destructeur... il ne s'execute pas comme ça, comme un methode.
pour les couleurs en console, j'utilise des commandes shell (si tu le passe sous windows, y aura pas de couleur xD.
pour les couleurs en console, j'utilise des commandes shell (si tu le passe sous windows, y aura pas de couleur xD.
Re: les changements (changelog)
Puis on va pas s'embêter pour des couleurs, si on avait plus de temps j'aurais recodé cette partie pour els rajouter sur windows mais maintenant ça ne vaut plus le coup.
BOn j'essaie de dl le projet mais le svn est long ce soir chez moi.....
BOn j'essaie de dl le projet mais le svn est long ce soir chez moi.....
davy- Messages : 26
Date d'inscription : 31/01/2008
Re: les changements (changelog)
oué ya eu une "restructuration" des fichiers du svn haha
le truc long, c'est la dll de qt qui fait 8mo (faudrait la virer d'ailleurs)
sinon davy je t'ai ajouté sur msn
le truc long, c'est la dll de qt qui fait 8mo (faudrait la virer d'ailleurs)
sinon davy je t'ai ajouté sur msn
nico- Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier
Re: les changements (changelog)
(les dll dans notre repertoire de projet ça fait classe n'est ce pas?)
pour les couleurs, on a mis dans le cahier des charges que c'etait optionnel (interface ergonomique) et puis ça m'a pris pas plus de 5min franchement. c'est juste cout << "\033[41m"; pour ecrire en blanc sur fond rouge etc... et y a un code couleur, rien de mechant
sinon pour windows j'ai ce qu'il faut pour ecrire en couleur, meme la fonction et tout, manque juste a determiner la plateforme pour savoir quoi choisir (c'est la lib conio ou windows.h)
pour les couleurs, on a mis dans le cahier des charges que c'etait optionnel (interface ergonomique) et puis ça m'a pris pas plus de 5min franchement. c'est juste cout << "\033[41m"; pour ecrire en blanc sur fond rouge etc... et y a un code couleur, rien de mechant
sinon pour windows j'ai ce qu'il faut pour ecrire en couleur, meme la fonction et tout, manque juste a determiner la plateforme pour savoir quoi choisir (c'est la lib conio ou windows.h)
Re: les changements (changelog)
l'une des dernieres fonctions qu'on vient de finir, c'est les sauvegarde de table (en cas de crash ou perte de données)
nico m'a donnée cette super idée tres simple a faire (pas plus de 10lignes au total)
a chaque fois qu'on ouvre une table, (test par exemple) le fichier qui contient les données c le test.db.
lors de l'ouverture de l'ouverture on crée un fichier test.db.bak qui contient l'ancien contenu, et puis si on ferme proprement le programme, ce fichier sera detruit.
MAIS, quand le programme se ferme anormalement, la fonction qui detruit ce fichier ne sera pas executée (parce qu'elle tout a la fin du main, enfin bref...) et puis lors du prochain lancement du programme, on peut faire l'option "13- Backup" qui recupere les données du fichier test.db.bak et avec ça. jackpot.
( merci nico pour l'aide )
nico m'a donnée cette super idée tres simple a faire (pas plus de 10lignes au total)
a chaque fois qu'on ouvre une table, (test par exemple) le fichier qui contient les données c le test.db.
lors de l'ouverture de l'ouverture on crée un fichier test.db.bak qui contient l'ancien contenu, et puis si on ferme proprement le programme, ce fichier sera detruit.
MAIS, quand le programme se ferme anormalement, la fonction qui detruit ce fichier ne sera pas executée (parce qu'elle tout a la fin du main, enfin bref...) et puis lors du prochain lancement du programme, on peut faire l'option "13- Backup" qui recupere les données du fichier test.db.bak et avec ça. jackpot.
( merci nico pour l'aide )
Re: les changements (changelog)
j'avais remarqué une chose hier soir en voulant regarder les code du svn, c'est que t'avais oublié lire.cc .... du coup le qdevelop me le rappelez lol, et sinon j'avais corrigé certaines erreurs qui ne sont pas très grave mais que j'ai pu remarquer grâce à QT, en faîtes les tailles d'une chaîne de caractères sont de type 'unsigned int' et non 'int'.
- Code:
string exemple = "Bonjour la compagnie";
// par exemple pour montrer j'affiche chaque caractères 1 par 1.
for (int i = 0 ; i < exemple.length() ; i++) cout << exemple[i] ;
/*
A première vu aucun problème, mais il ne faut pas s'y fier.
car en faîtes la valeur que renvoie exemple.length() est un 'unsigned int', et donc nous on compare un 'int' i avec un 'unsigned int'.
*/
for (unsigned int i = 0; i<exemple.length() ; i++) cout << exemple[i];
davy- Messages : 26
Date d'inscription : 31/01/2008
Re: les changements (changelog)
mais là tout de meme... il le precaste non? et c'est un warning.
sinon, j'ai pas fait gaffe a ça =°
EDIT: je viens de casser la legende. http://amineb.e3b.org/divers/Beau.PNG
sinon, j'ai pas fait gaffe a ça =°
EDIT: je viens de casser la legende. http://amineb.e3b.org/divers/Beau.PNG
Re: les changements (changelog)
Oui comme je l'ai dit c'est juste un warning mais en me baladant aussi j'ai oublié de le dire il avait trouvé des variables qui n'étaient pas utilisées.
PS: lol ça te change non ? sinon c'est quoi ton thème et le dock que tu utilise ? .... Amine reste avec nous ne fait pas une syncope car t'a virer tes icônes du bureau de windows ^^
PS: lol ça te change non ? sinon c'est quoi ton thème et le dock que tu utilise ? .... Amine reste avec nous ne fait pas une syncope car t'a virer tes icônes du bureau de windows ^^
davy- Messages : 26
Date d'inscription : 31/01/2008
Re: les changements (changelog)
c'est du PHOTOSHOP jdis, j'en suis sûr
nico- Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier
Re: les changements (changelog)
tu verras tout par toi meme (je peux vous dire que ça fait trop bizarre) et puir mon dossier Bordel il fait plus de 2Go, vous savez pourquoi xD
Bon, pour ce soir, avec Nico, on a reussi a rajouter la gestion des type bool qu'on avait oublié au depart -_-" (ça a été facile en general)
(en fait ils sont stockés comme des int dans le fichier binaire, la conversion vers le fichier clair qui regarde le type de la colonne, et la valeur en int, puis il met true si c un 1 false sinon.)
bon tout ça pour vous dire qu'on a presque fini toutes les parties les plus importantes, faut juste qu'on complete la doc et le manuel
(et puis le rapport aussi)
EDIT: pour le theme xp c'est Alieguise, et son theme Xenomorphe. et la dock qui va avec
Bon, pour ce soir, avec Nico, on a reussi a rajouter la gestion des type bool qu'on avait oublié au depart -_-" (ça a été facile en general)
(en fait ils sont stockés comme des int dans le fichier binaire, la conversion vers le fichier clair qui regarde le type de la colonne, et la valeur en int, puis il met true si c un 1 false sinon.)
bon tout ça pour vous dire qu'on a presque fini toutes les parties les plus importantes, faut juste qu'on complete la doc et le manuel
(et puis le rapport aussi)
EDIT: pour le theme xp c'est Alieguise, et son theme Xenomorphe. et la dock qui va avec
Dernière édition par amine le Mer 14 Mai - 14:22, édité 1 fois
Re: les changements (changelog)
je télécharge les fichiers sur le svn, et je tenterais de le faire fonctionner, pour voir.
davy- Messages : 26
Date d'inscription : 31/01/2008
Re: les changements (changelog)
bon les amis
le projet a fait un grand pas en avant.
a partir de maintenant, on travaille tous sur la copie de FCHGUI (dossier)
nouvelle fonction de malade ajoutée. "activer le mode distant" vous entrez le port, et hop, vous avez votre application en mode server.
le client il est presque terminé, il va juste vous demander d'entrer l'adresse ip du server, le port, et puis hop, quand vous etes connectés, vous pouvez saisir des commandes de type SQL que j'ai implementé y a quelque temps dans la classe Base.
depuis n'importe quel pc vous pouvez donc travailler sur le projet c'est pas la classe ça?
(les modifs sont sur le server) et le dossier socket/ c lui qui contient toutes les classes que j'ai rajouté
EDIT: pour le client il faut entrer des commandes avec des espaces et tout... et que cin n'est pas le bon choix.
attendez que je termine ma petite classe Lire qui boite un peu... (mais sinon, j'ai essayé, ça execute bien les commandes et en reseau \o/)
le projet a fait un grand pas en avant.
a partir de maintenant, on travaille tous sur la copie de FCHGUI (dossier)
nouvelle fonction de malade ajoutée. "activer le mode distant" vous entrez le port, et hop, vous avez votre application en mode server.
le client il est presque terminé, il va juste vous demander d'entrer l'adresse ip du server, le port, et puis hop, quand vous etes connectés, vous pouvez saisir des commandes de type SQL que j'ai implementé y a quelque temps dans la classe Base.
depuis n'importe quel pc vous pouvez donc travailler sur le projet c'est pas la classe ça?
(les modifs sont sur le server) et le dossier socket/ c lui qui contient toutes les classes que j'ai rajouté
EDIT: pour le client il faut entrer des commandes avec des espaces et tout... et que cin n'est pas le bon choix.
attendez que je termine ma petite classe Lire qui boite un peu... (mais sinon, j'ai essayé, ça execute bien les commandes et en reseau \o/)
Re: les changements (changelog)
là on est meme plus dans le "facultatif" du projet, mais bien au delà !
alain- Messages : 16
Date d'inscription : 13/02/2008
Re: les changements (changelog)
ouai mais tant qu'a faire, (l'idée des sockets en reseau ct juste un petit delire avec nico hier soir) et puis j'ai fait un reve... et hop je l'ai codé le matin tot,
il reste qu'a completer les commandes SQL pour mieu les interpreter.
il reste qu'a completer les commandes SQL pour mieu les interpreter.
Re: les changements (changelog)
haha excellent, il l'a fait
chui curieux de voir comment ça fonctionne
par contre implémenter ça sur le qt...si quelqu'un est chaud pour le faire, go, mais faut pas compter sur moi huhu
chui curieux de voir comment ça fonctionne
par contre implémenter ça sur le qt...si quelqu'un est chaud pour le faire, go, mais faut pas compter sur moi huhu
nico- Messages : 52
Date d'inscription : 30/01/2008
Age : 36
Localisation : Montpellier
Re: les changements (changelog)
pour l'instant ça marche qu'en mode console, parce que des que tu l'active c bon, tu peux plus rien toucher... et j'ai galeré pour le mettre parce que y a des exceptions un peu partout xD
il faut juste rajouter un menu, activer le mode distant et hop... j'ai fait les classes qui se chargent de ça a l'exterieur dans le dossier socket et client.
le code pour le server.
et pour le client y a juste ça, un endroit ou taper l'adresse ip, le port, et ensuite, un endroit permanant pour taper les commandes
je vous montre tout le main.
il faut juste rajouter un menu, activer le mode distant et hop... j'ai fait les classes qui se chargent de ça a l'exterieur dans le dossier socket et client.
le code pour le server.
- Code:
try
{
// creer le socket
int port;
cout << "entrez le port: " << endl;
cin >> port;
ServerSocket server (port);
cout << "server en marche..." << endl;
while ( true )
{
ServerSocket new_sock;
server.accept ( new_sock );
try
{
while ( true )
{
string data;
new_sock >> data;
if(data != "")
{
cout << "commande a executer: " << data << endl;
new_sock << b.sqlComm(data);
}
new_sock << "commande executée" << endl;;
}
}
catch ( SocketException& ) {}
}//fin while
}
catch ( SocketException& e )
{
cout << "Exception was caught:" << e.description() << "\nExiting.\n";
}
et pour le client y a juste ça, un endroit ou taper l'adresse ip, le port, et ensuite, un endroit permanant pour taper les commandes
je vous montre tout le main.
- Code:
int main ( int argc, int argv[] )
{
string data;
Lire io;
string ip;
int port;
cout << "entrez l'ip: " << endl;
cin >> ip;
cout << "entrez le port: " << endl;
cin >> port;
ClientSocket client_socket (ip, port);
string reply;
string aux = "";
string aux2 = "";
while(data != "exit")
{
try
{
try
{
cout << "entrez message la commande: " << endl;
/*ce bordel c'est ce qu'on appelle un cin qui accepte les espaces xD*/
cin.clear();
cin >> aux;
getline(cin, aux2);
data = aux+aux2;
/***********************************************************/
client_socket << data; //envoyer la requete au server.
client_socket >> reply; //la reponse du server.
cout << reply; //voyons ce qu'il nous dit le server...
}
catch ( SocketException& ) {}
}
catch ( SocketException& e )
{
cout << "Exception: " << e.description() << "\n";
}
}
return 0;
}
Re: les changements (changelog)
amine a écrit:et puis j'ai fait un reve... et hop je l'ai codé le matin tot,
je pe la garder pour le livre d'or ? ^^
Marc- Admin
- Messages : 33
Date d'inscription : 30/01/2008
Re: les changements (changelog)
on met le livre d'or a la fin du rapport avec les meilleures citations du forum et des réunions du mercredi?
... ou pas
... ou pas
Niko- Messages : 25
Date d'inscription : 07/02/2008
Re: les changements (changelog)
ohh ouii biensur xD, (seulement faut les trouver les citations...) et on mettra notre bashFCH
Page 3 sur 4 • 1, 2, 3, 4
Page 3 sur 4
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|