Mayzz
Messages postés2813Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention 2 juin 202028 22 oct. 2006 à 05:23
Moi je trouve ça assez sympa et simple d'utilisation, il est vrais q'en terme de performance, ça laisse à désirer...
Mais pour une petite application c'est le type de solution qui convient parfaitement.
Aussi j'aurais voulus démontrer un autre procédé avec la même méthode, celle de la variable de type personnalisé, exemple :
----------------------------------------------
Public Type DataType ' Type de données de la base
'Données de votre base
Nom As String
Prenom As String
Adresse As String
'Ect...
End Type
Public Type SaveData ' Type contenant le tableau de données
Data() As DataType
End Type
Public Save As SaveData
Private Sub LoadDataBase(DB As String)
Dim Fr As Long: Fr = FreeFile
Open DB For Binary Access Read As #Fr
Get #Fr, , Save
Close #Fr
End Sub
Private Sub SaveDataBase(DB As String)
Dim Fr As Long: Fr = FreeFile
'Au préalable :
'If Dir (DB) then kill DB
Open DB For Binary Access Write As #Fr
Put #Fr, , Save
Close #Fr
End Sub
' Ensuite il ne vous reste plus qu'à travailler avec le tableau
' Save.Data, Ex :
Redim Save.Data(0) as DataType
Save.Data(0).Nom = "Stéphane"
Save.Data(0).Prenom ="..."
'Idem pour la consultation
TxtName = Save.Data(0).Name
' En pensant bien sur à redimentionner le tableau à chaque ajout
' ou supression. Pensez aussi à l'instruction "With" (With
' Save.Data(0)
' Ce code est un exemple car la gestion des tableau est assez
' complexe mais il fonctionne.
--------------------------------------
Le principe est là aussi de charger en mémoire la totalité de la base de données, donc bien sur c'est très mauvais pour une base à gros volumes d'informations.
Bonne prog @ts
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 13 févr. 2006 à 10:03
BruNews, tu vas chercher un peu loin je trouve là!!!
Bon, ok, faire comme ça n'est pas LA Solution. Mais c'est, finalement, un bon petit entraînement pour les débutants (également pour démontrer les limitations de tels systèmes).
Sinon, perso je suis d'accord avec la première phrase de Bouv... Quoi que je la généraliserais bien à l'ensemble du domaine "Informatique"!
Mais je note quand même le nombre élevé de messages laissés pour une source de ce genre ce qui est, il faut bien le dire, étrangement inhabituel... hein les mecs ;) Enfin, du moment que ça reste constructif, pourquoi pas!
cs_MasterHack
Messages postés586Date d'inscriptionjeudi 18 septembre 2003StatutMembreDernière intervention13 février 20082 11 févr. 2006 à 18:27
salut,
ça a l'aire d'etre une base de donnees,y'a des donnees, une structure,y'a juste le bleme securite, de vitesse de recherche au cas ou ça sera volumineux.Mais je suis d'accord que c'est une base de donnees.
bonne chance, un travail qui merite d'etre noter ^^.
bouv
Messages postés1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 11 févr. 2006 à 14:35
Jolie ou pas le site manque un peu de présence féminine...
Bref, sinon, quand je ne savais pas encore utiliser Access, j'ai fait un logiciel de facturation qui utilisait le même principe (stocker les données dans un fichier de type ASCII). Tout fonctionnait très bien (stock, relances, devis, impression....)
Mais quand on souhaite faire des recherches multitables (INNER JOIN)... Aïe,aïe,aïe... il faut s'accrocher.
Donc quand j'ai appris l'ACCESS, j'ai recommencé depuis le début et j'ai refait exactement le même logiciel mais avec une base ACCESS. Et la je peux vous dire que cela simplifie vraiment la vie. Le code fait 10 fois moins de ligne, donc forcément on code 10 fois plus vite. Et le programme va lui aussi beaucoup plus vite.
Donc kakenette, si je peux te donner un conseil : apprend à te servir d'une base de données de type Access (vraiment facile) tu gagneras du temps par la suite. Il y a quelques bon tutos sur le site, donc cherches un peu. Sinon je dois en avoir sous le coude.
Tu t'orientras ensuite peut etre vers des bases de type MySQL, gratuite mais (il parrait ?) plus performante.
Bonne prog
++
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 11 févr. 2006 à 11:25
Allons allons, que la codeuse soit jolie c'est certain mais pour autant il faut rester objectif sur la source et on doit l'orienter vers des solutions correctes.
La méthode "une entrée par ligne" comme fait ici n'est absolument pas viable, il ne faut pas s'arrêter au simple script VB écrit mais aller voir ce que ça induit comme traitement (le vrai code dans la virtual machine) et vous verrez que c'est impossible de continuer dans cette voie.
La méthode 'random' avec enregs de taille fixe permet de boucler sur tout le fichier sans avoir à rechercher les fins de lignes et de bouger 3 fois le pointeur de lecture, c'est malheureusement ce qui se fait ici.
XtremDuke
Messages postés626Date d'inscriptionsamedi 28 septembre 2002StatutMembreDernière intervention18 mai 20094 11 févr. 2006 à 11:14
Moui, c'est une base de données en soit. Par contre, faut pas qu'il n'y ai trop d'occurences. Perso, j'aurai mis une entrée par ligne celà aurait favorisé les recherches.
Les "texte1.text" c'est pas très jolie aussi, pour s'y retrouver c'est pas top.
cs_NoFutur
Messages postés171Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 6 mai 20071 11 févr. 2006 à 11:06
Mon avis la dessus,
Source bien sympathique pour stocker des données surtout si on ne souhaite stocker seulement que quelques informations. Aprés il vaut mieux passer le cap Access si on souhaite stocker un plus gros volume de données.
Conseils :
- Indente bien ton code (saut de ligne et tabulation)
- Evite les accents pour chaque variable
- N'hésite pas à commenter ton code même si ça peut te paraitre ringard pour certaine procédure.
Bonne prog ^_^
@plus!
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 11 févr. 2006 à 07:58
Rien a redire coté code , c'est bien codé , ça fait ce que c'est sensé faire. Manque p-e un peu d'indentation par contre.
Et puis kakenette a entièrement raison sur les bases de données , une base de données dans le fond c'est simplement un ensemble d'informations , peu importe la méthode de stockage , peu importe le nombre de dimensions de la table et peu importe le nombre d'options que l'interface offre... Tant que ce soit fait pour gerer un ensemble de données ^^
Remarques constructives que je tiens a faire:
1.Tu devrais codé avec l'option explicit comme ça ça évite d'avoir des variables non déclarés
2.Quand tu recherche le NumeroPrénom(Text1) , tu devrais le faire une fois et le stocker dans une variable au lieu de le repeté 4 fois pour remplir les textbox , tu vas alors gagné en vitesse (difference flagrante si il y a 10 000 entrées :))
3.Ça fait plaisir de voir une (jolie ^^) codeuse sur vbfrance :) Bonne continuation !
YoMan64
diablamanshadow
Messages postés419Date d'inscriptionlundi 30 août 2004StatutMembreDernière intervention28 janvier 2008 10 févr. 2006 à 22:25
bonsoir,
moi perso je prefere cette methode d'apres vous archaique de DB que les system plus complexe pour acces et autres substitu :-) c'est une methode simple et radicale dont depuis cette maniere on peut creez sa propre extension de fichier et en bidouillant un peu de faire son extension avec donnee cryptee etc etc (ce que je fais d'ailleur) donc bonne source je note 9 au vu qu'elle a fait en plus un effort d'organisation ;-)
Bien a vous
Diablaman
kakenette
Messages postés218Date d'inscriptiondimanche 1 mai 2005StatutMembreDernière intervention15 novembre 20091 10 févr. 2006 à 18:33
Faut oublie le terme base de données des années 2006 avec moi ^^
Moi je part sur le principe comme sont nom l'indique : "Une Base" de "données" alor la je sais pas quand sa été inventer, je pense que sa été deja inventer bien avent les ordinateur. C klr mdrr que mon system est grave pas terrible pour une base de données (2006^^) mais comme j'avais dit, MMORPG, donc c'était pour l'idée... Mm jaurai pu appeler ca : mmm ... Regroupement d'information. lol
Ps. Private Joke XD
leteltel
Messages postés8Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention10 février 2006 10 févr. 2006 à 17:54
le principe d'une base de données c'est d'etre performante, là il n'a pas prevu d'indexation, c'est juste du stockage de données dans un fichier texte mais bon la maitrise des fichiers textes est deja un bon point ;o)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 10 févr. 2006 à 17:48
Il n'est pas obligatoire de gérer le langage SQL pour s'appeler base de données, un système de recherche est par contre tout à fait indispensable.
La méthode 'enreg par ligne' est une calamité en terme de performances, impossible de pointer direct sur un enreg ni de modifier un enreg sans tout réécrire.
Il faut passer aux enregistrements de taille fixe pour améliorer tout cela, c'est plus gourmand en place disque mais très nettement plus rapide. C'est, je pense, la seule méthode viable en VB.
Private joke: je ne noterai pas, taratata...
leteltel
Messages postés8Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention10 février 2006 10 févr. 2006 à 17:28
Sans vouloir te décevoir ton logiciel n'a rien a voir avec une base de données, déjà car tu ne gère pas la syntaxe SQL, de plus j'ai pas l'impression que tu gère les recherches partielles...
tu sait qu'un simple fichier CSV avec un DSN enregistré dans windows (panneau de configuration -> outils d'administration) te permet de faire une base de données ?
22 oct. 2006 à 05:23
Mais pour une petite application c'est le type de solution qui convient parfaitement.
Aussi j'aurais voulus démontrer un autre procédé avec la même méthode, celle de la variable de type personnalisé, exemple :
----------------------------------------------
Public Type DataType ' Type de données de la base
'Données de votre base
Nom As String
Prenom As String
Adresse As String
'Ect...
End Type
Public Type SaveData ' Type contenant le tableau de données
Data() As DataType
End Type
Public Save As SaveData
Private Sub LoadDataBase(DB As String)
Dim Fr As Long: Fr = FreeFile
Open DB For Binary Access Read As #Fr
Get #Fr, , Save
Close #Fr
End Sub
Private Sub SaveDataBase(DB As String)
Dim Fr As Long: Fr = FreeFile
'Au préalable :
'If Dir (DB) then kill DB
Open DB For Binary Access Write As #Fr
Put #Fr, , Save
Close #Fr
End Sub
' Ensuite il ne vous reste plus qu'à travailler avec le tableau
' Save.Data, Ex :
Redim Save.Data(0) as DataType
Save.Data(0).Nom = "Stéphane"
Save.Data(0).Prenom ="..."
'Idem pour la consultation
TxtName = Save.Data(0).Name
' En pensant bien sur à redimentionner le tableau à chaque ajout
' ou supression. Pensez aussi à l'instruction "With" (With
' Save.Data(0)
' Ce code est un exemple car la gestion des tableau est assez
' complexe mais il fonctionne.
--------------------------------------
Le principe est là aussi de charger en mémoire la totalité de la base de données, donc bien sur c'est très mauvais pour une base à gros volumes d'informations.
Bonne prog @ts
13 févr. 2006 à 10:03
Bon, ok, faire comme ça n'est pas LA Solution. Mais c'est, finalement, un bon petit entraînement pour les débutants (également pour démontrer les limitations de tels systèmes).
Sinon, perso je suis d'accord avec la première phrase de Bouv... Quoi que je la généraliserais bien à l'ensemble du domaine "Informatique"!
Mais je note quand même le nombre élevé de messages laissés pour une source de ce genre ce qui est, il faut bien le dire, étrangement inhabituel... hein les mecs ;) Enfin, du moment que ça reste constructif, pourquoi pas!
11 févr. 2006 à 18:27
ça a l'aire d'etre une base de donnees,y'a des donnees, une structure,y'a juste le bleme securite, de vitesse de recherche au cas ou ça sera volumineux.Mais je suis d'accord que c'est une base de donnees.
bonne chance, un travail qui merite d'etre noter ^^.
11 févr. 2006 à 14:35
Bref, sinon, quand je ne savais pas encore utiliser Access, j'ai fait un logiciel de facturation qui utilisait le même principe (stocker les données dans un fichier de type ASCII). Tout fonctionnait très bien (stock, relances, devis, impression....)
Mais quand on souhaite faire des recherches multitables (INNER JOIN)... Aïe,aïe,aïe... il faut s'accrocher.
Donc quand j'ai appris l'ACCESS, j'ai recommencé depuis le début et j'ai refait exactement le même logiciel mais avec une base ACCESS. Et la je peux vous dire que cela simplifie vraiment la vie. Le code fait 10 fois moins de ligne, donc forcément on code 10 fois plus vite. Et le programme va lui aussi beaucoup plus vite.
Donc kakenette, si je peux te donner un conseil : apprend à te servir d'une base de données de type Access (vraiment facile) tu gagneras du temps par la suite. Il y a quelques bon tutos sur le site, donc cherches un peu. Sinon je dois en avoir sous le coude.
Tu t'orientras ensuite peut etre vers des bases de type MySQL, gratuite mais (il parrait ?) plus performante.
Bonne prog
++
11 févr. 2006 à 11:25
La méthode "une entrée par ligne" comme fait ici n'est absolument pas viable, il ne faut pas s'arrêter au simple script VB écrit mais aller voir ce que ça induit comme traitement (le vrai code dans la virtual machine) et vous verrez que c'est impossible de continuer dans cette voie.
La méthode 'random' avec enregs de taille fixe permet de boucler sur tout le fichier sans avoir à rechercher les fins de lignes et de bouger 3 fois le pointeur de lecture, c'est malheureusement ce qui se fait ici.
11 févr. 2006 à 11:14
Les "texte1.text" c'est pas très jolie aussi, pour s'y retrouver c'est pas top.
11 févr. 2006 à 11:06
Source bien sympathique pour stocker des données surtout si on ne souhaite stocker seulement que quelques informations. Aprés il vaut mieux passer le cap Access si on souhaite stocker un plus gros volume de données.
Conseils :
- Indente bien ton code (saut de ligne et tabulation)
- Evite les accents pour chaque variable
- N'hésite pas à commenter ton code même si ça peut te paraitre ringard pour certaine procédure.
Bonne prog ^_^
@plus!
11 févr. 2006 à 07:58
Et puis kakenette a entièrement raison sur les bases de données , une base de données dans le fond c'est simplement un ensemble d'informations , peu importe la méthode de stockage , peu importe le nombre de dimensions de la table et peu importe le nombre d'options que l'interface offre... Tant que ce soit fait pour gerer un ensemble de données ^^
Remarques constructives que je tiens a faire:
1.Tu devrais codé avec l'option explicit comme ça ça évite d'avoir des variables non déclarés
2.Quand tu recherche le NumeroPrénom(Text1) , tu devrais le faire une fois et le stocker dans une variable au lieu de le repeté 4 fois pour remplir les textbox , tu vas alors gagné en vitesse (difference flagrante si il y a 10 000 entrées :))
3.Ça fait plaisir de voir une (jolie ^^) codeuse sur vbfrance :) Bonne continuation !
YoMan64
10 févr. 2006 à 22:25
moi perso je prefere cette methode d'apres vous archaique de DB que les system plus complexe pour acces et autres substitu :-) c'est une methode simple et radicale dont depuis cette maniere on peut creez sa propre extension de fichier et en bidouillant un peu de faire son extension avec donnee cryptee etc etc (ce que je fais d'ailleur) donc bonne source je note 9 au vu qu'elle a fait en plus un effort d'organisation ;-)
Bien a vous
Diablaman
10 févr. 2006 à 18:33
Moi je part sur le principe comme sont nom l'indique : "Une Base" de "données" alor la je sais pas quand sa été inventer, je pense que sa été deja inventer bien avent les ordinateur. C klr mdrr que mon system est grave pas terrible pour une base de données (2006^^) mais comme j'avais dit, MMORPG, donc c'était pour l'idée... Mm jaurai pu appeler ca : mmm ... Regroupement d'information. lol
Ps. Private Joke XD
10 févr. 2006 à 17:54
10 févr. 2006 à 17:48
La méthode 'enreg par ligne' est une calamité en terme de performances, impossible de pointer direct sur un enreg ni de modifier un enreg sans tout réécrire.
Il faut passer aux enregistrements de taille fixe pour améliorer tout cela, c'est plus gourmand en place disque mais très nettement plus rapide. C'est, je pense, la seule méthode viable en VB.
Private joke: je ne noterai pas, taratata...
10 févr. 2006 à 17:28
tu sait qu'un simple fichier CSV avec un DSN enregistré dans windows (panneau de configuration -> outils d'administration) te permet de faire une base de données ?