BASE DE DONNEES PERSO SOUS FORMAT TXT

leteltel Messages postés 8 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 10 février 2006 - 10 févr. 2006 à 17:28
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 22 oct. 2006 à 05:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35980-base-de-donnees-perso-sous-format-txt

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
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és 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
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és 586 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 13 février 2008 2
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és 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
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és 171 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 1
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és 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Derniè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és 419 Date d'inscription lundi 30 août 2004 Statut Membre Dernière intervention 28 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és 218 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 15 novembre 2009 1
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és 8 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 10 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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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és 8 Date d'inscription vendredi 3 janvier 2003 Statut Membre Dernière intervention 10 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 ?
Rejoignez-nous