begin process at 2012 05 27 16:53:16
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > BASE DE DONNÉE SANS AXCESS NI API

BASE DE DONNÉE SANS AXCESS NI API


 Information sur la source

Note :
7,33 / 10 - par 3 personnes
7,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de Donnees Niveau :Débutant Date de création :07/08/2004 Date de mise à jour :07/08/2004 17:57:39 Vu / téléchargé :3 850 / 406

Auteur : legion91

Ecrire un message privé
Site perso
Commentaire sur cette source (24)
Ajouter un commentaire et/ou une note

 Description

Code trés simple et sans grande pretention.
[EDIT: parcque c'est pas plus complexe que AXCESS mais bien plus simple].
Le code présenter ci-dessou n'est que pur exemple simpliste, dans le zip vous trouverez un exemple un peu plus complexe que celui-ci qui vous permettra d'elaborer une base de donnée un peu plus complexe qu'une simple string.

Source

  • 'La le mode simple + de detail dans le zip
  • Private buf() As String
  • Private Sub Command1_Click()
  • Dim i As Integer
  • 'on redimensionne le tableau à 511
  • ReDim buf(511) As String
  • 'ouverture/creation d'un fichier txt en mode binaire
  • Open App.Path & "\Simple.txt" For Binary As #1
  • 'creation de la base de donnée (memoire)
  • For i = 0 To 10
  • buf(i) = "test" & i
  • DoEvents
  • Next i
  • 'on redimensionne le tableau à 10
  • ReDim Preserve buf(10) As String
  • 'on sauvegarde la base de donnée (physique)
  • Put #1, , buf()
  • 'on utilise plus le txt alors on le ferme
  • Close #1
  • 'on ne garde plus les valeur de la base
  • Erase buf
  • End Sub
  • Private Sub Command2_Click()
  • 'pour la boucle For
  • Dim i As Integer
  • 'on redimensionne suivant la taille du fichier (c'est pas correct mais bon)
  • ReDim buf(FileLen(App.Path & "\Simple.txt")) As String
  • 'ouverture du fichier txt en mode binaire
  • Open App.Path & "\Simple.txt" For Binary As #1 '#1 mais Nr= Freefile c'est mieu
  • 'on prend les valeurs
  • Get #1, , buf()
  • 'on a finit on ferme le fichier
  • Close #1
  • ReDim Preserve buf(10) As String 'on sait qu'il ya 10valeurs donc...ben on redimensonne à 10 tout en gardant nos valeurs (sans les compressez)
  • 'on efface la Form
  • Me.Cls
  • 'listing de la base
  • 'For i = 0 To UBound(buffer)
  • For i = 0 To 10
  • Print buf(i) 'impression sur la Form
  • DoEvents
  • Next i
  • Print "Finish" & UBound(buf) 'UBound(buf)=10 car on na redimmensionner à 10 et LBound(buf)=0
  • End Sub
  • '
'La le mode simple + de detail dans le zip

Private buf() As String
Private Sub Command1_Click()

Dim i As Integer
'on redimensionne le tableau à 511
ReDim buf(511) As String

'ouverture/creation d'un fichier txt en mode binaire
Open App.Path & "\Simple.txt" For Binary As #1

'creation de la base de donnée (memoire)
For i = 0 To 10
buf(i) = "test" & i
DoEvents
Next i

'on redimensionne le tableau à 10
ReDim Preserve buf(10) As String

'on sauvegarde la base de donnée (physique)
Put #1, , buf()

'on utilise plus le txt alors on le ferme
Close #1

'on ne garde plus les valeur de la base
Erase buf

End Sub
Private Sub Command2_Click()
'pour la boucle For
Dim i As Integer

'on redimensionne suivant la taille du fichier (c'est pas correct mais bon)
ReDim buf(FileLen(App.Path & "\Simple.txt")) As String

'ouverture du fichier txt en mode binaire
Open App.Path & "\Simple.txt" For Binary As #1 '#1 mais Nr= Freefile c'est mieu

'on prend les valeurs
Get #1, , buf()

'on a finit on ferme le fichier
Close #1

ReDim Preserve buf(10) As String 'on sait qu'il ya 10valeurs donc...ben on redimensonne à 10 tout en gardant nos valeurs (sans les compressez)

'on efface la Form
Me.Cls

'listing de la base

'For i = 0 To UBound(buffer)
For i = 0 To 10
Print buf(i) 'impression sur la Form
DoEvents
Next i


Print "Finish" & UBound(buf) 'UBound(buf)=10 car on na redimmensionner à 10 et LBound(buf)=0
End Sub

'

 Conclusion

Insipré de http://www.vbfrance.com/code.aspx?ID=24461 portant sur la création d'un Fichier WAV
Merci à CanisLupus (http://www.vbfrance.com/forum.v2.aspx?ID=261341&n b=3)

'Bon le code est simple à comprendre et comme je l'utilise très souvent je me suis dit qu'il pouvait servir aux débutant comme aux pro donc je le post.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

07 août 2004 17:57:40 :

 Sources du même auteur

Source avec Zip CRÉÉ 1 LIAISON INTERNE À UNE APPLICATION (COMME EMULE,...)
Source avec Zip Source avec une capture SERVEUR HTTP (GET ET "POST")
Source avec Zip MODIFIER UN EXE DEJA COMPILER
Source avec Zip Source avec une capture T'CHAT AVEC SERVEUR WEB ET CLIENT.
CORRECTION DE PATH ET APPRENDRE À FAIRE UNE SIMPLE FONCTION.

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) RECHERCHE DE MOTS DANS UN DICTIONNAIRE par alpha5
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES ANIMAUX par okosa
Source avec Zip Source avec une capture LIST DES IMAGES AVEC BASE DE DONNÉES ET REPERTOIR D'IMAGE par yannickcephas
Source avec Zip Source avec une capture CHARGER UNE BASE DONNÉES DANS UNE LISTVIEW PUIS L'EXPORTER S... par johndave
Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa

Commentaires et avis

Commentaire de BozzoDodo le 07/08/2004 17:00:20

Je trouve ca plutot inutile comme code! Je vois pas en quoi c'est une base de donnée + complexe qu'avec access.... bref 5/10

Commentaire de legion91 le 07/08/2004 17:24:55

J'ai pas dit que c'etait plus complexe à AXCESS puisque c'est plus facile à faire avec mon code mai j'ai dit que l'ont pouvait la rendre + complexe.

Commentaire de BozzoDodo le 07/08/2004 19:13:04

Oui c'est bien ce que j'avais compris mais je doute que tu puisse rendre cela plus complexe ;-) (essaie d'enregistrer des sauts à la ligne avec ton code... c'est pas possibles...)

Commentaire de BozzoDodo le 07/08/2004 19:29:26

J'ai rien dit! J'ai vérifié et ca marche... dsl je remonte la note du coup... =P

Commentaire de BozzoDodo le 07/08/2004 19:30:23

euh... théoriquent puisque j'ai déjà voté

Commentaire de BozzoDodo le 07/08/2004 19:54:46

Pour me faire pardonner (tu avais raison j'avais mal lu le code hihihi) j'ai modifier les trucs pas tout à fait corrects et maintenant le nombre de membres s'enregistre dans le fichier).


Private buf() As String

Private Sub cmdEcrire_Click()
Dim i As Long
Dim n As Long
Dim ffile As Byte

'Nombre de valeur à créer
n = 10

ffile = FreeFile

    Open App.Path & "\Simple.txt" For Binary As #ffile
        'On redimensionne le tableau
        ReDim buf(n)
        
        'Création de la base de donnée (memoire)
        For i = 0 To n
            buf(i) = "test" & i
            DoEvents
        Next i
        
        'On sauvegarde le nombre de membres
        Put #ffile, , n
        
        'On sauvegarde la base de donnée (physique)
        Put #ffile, , buf()
        
    'On utilise plus le txt alors on le ferme
    Close #ffile
        
    'On ne garde plus les valeur de la base
    Erase buf
End Sub


Private Sub cmdLire_Click()
Dim i As Long
Dim n As Long
Dim ffile As Byte

    ffile = FreeFile
    
    'Ouverture du fichier txt en mode binaire
    Open App.Path & "\Simple.txt" For Binary As #ffile
    
        'On récupère le nombre de membres de la base de donnée
        Get #ffile, , n
        
        'On redimensionne le tableau pour qu'il puisse acceuillir toutes les valeurs
        ReDim buf(n)
        
        'On lit les valeurs de la base de donnée
        Get #ffile, , buf()
        
    'On a finit on ferme le fichier
    Close #ffile
    
    'On efface la Form
    Me.Cls
    
    'Listing de la base
    For i = 0 To UBound(buf)
        Print buf(i) 'impression sur la Form
        DoEvents
    Next i
End Sub

Commentaire de code1 le 07/08/2004 20:44:28

bien résonné bozzodoo

Commentaire de legion91 le 07/08/2004 22:57:26

Enfaite dans un autre projet j'ai fait presk de la mem maniere (principe car sinon c'est trop long):
option explicit
private type Buffer
Count as long
Data () as tring)
end type

'form

private Buffer as Buffer
....
Open ....
Put #1,,Buffer
Close #1

et sa marche aussi bien ;-)

Commentaire de RDX le 07/08/2004 23:00:27

Ca marche, c du bon boulot!

Seulement une chose : pourquoi redimensionne tu 2 fois ton Tableau buf()?
tu sais que tu as 11 éléments, dimensionne le a 10 et ca suffira, pas besoin de REDIM PRESERVE dans ce cas :)

Tu peut stocker des tableaux de ce que tu veux, pas besoin de se limiter seulement au chaines. Tu peut même utiliser des type utilisateurs!

Comme :

Private Type FichePersonne
  nom as string * 50
  prenom as string *200
  addresse as string *1000
  tel as string*10
end type

Dim fiches(20) as FichePersonne

et tu fait pareil avec ce tableau.

Bye!

Commentaire de legion91 le 08/08/2004 02:08:55

nom as string * 50 a quoi sert le multiplier ?

Ouais pour les redim de tableaux c'est à corriger ;-).
Je sais pas pour vous mais la je me demande qui à postez une source ? En tout cas c'est pas moi ;-)

Et dire que je vais aller me coucher et que demain c'est sur jvais taffer sur vos idées.

Merci les gars.

Commentaire de Renfield le 08/08/2004 06:18:41 administrateur CS

nom as string * 50

veut tout simplement dire que ta chaine est reservée avec 50 caractères en mémoire....

Commentaire de BozzoDodo le 08/08/2004 11:25:35

Ouais mais perso je prefère la technique de legion91. Parce que quand on reserve une chaine à un certain nombre de caractères le fichier a tendance a prendre du... volume =D.

Commentaire de code1 le 08/08/2004 18:38:51

l'interé de la programation c'est l'execution de programme et personnélement je trouve ton code
super c'est tu execute ce programme tu trevera que presque le meme essay de l'associer avec de composant
base de donnée est il deviendra un code des pro
private sub bt_click()
for i=1 to 10
fontsize=10+i
print "test"; i
next i
end sub

Commentaire de BozzoDodo le 08/08/2004 19:31:56

Ton code m'a donné une idée. Je vais essayer de créer un base de donnée en me servant des Collection et de classes. Voila ce qu j'aimerai que ca donne

                   Item - value
                  /
          Item - value
         /       \
                   Item - value
Base                  
                   Item - value
         \       /
          Item
                 \.......


J'espère y arriver c'est pas gagné =S

Commentaire de code1 le 08/08/2004 20:22:16

si tu veus que ton idéé réussis il faut que tu savent
bien géré les curseurs coté serveur et coté client

Commentaire de BruNews le 08/08/2004 21:17:07 administrateur CS

Salut a tous,

c'est bien de vouloir essayer mais il est inconcevable de faire un gestionnaire BDD en vb, deja rien que pour les limitations du langage (pas de pointeurs, pas d'acces directs ni gestion dynamique de la memoire, etc...).
Faudra passer au natif compile pour ce genre de choses.

Commentaire de BozzoDodo le 08/08/2004 21:45:17

oula!!!! Je m'y connais pas autant! ^^
Je chercher depuis taleur mais je trouve pas comment faire. J'ai créer une classe cItem. Dans celle ci j'ai déclaré Public Items() as cItem mais Vb me dit que c'est pas possible! =S. Donc après j'ai déclarer une collection Items() à la place et une property.
Pour ajouter un élément dans la suite (ex: j'ai item je veux créer un sous-item alor j'utilise la fonction Additem).
En gros voila mon code
(dans le projet je déclare BDD as new cItem) et dans la classe cItem:

Private m_Value As String
Private Items() As New Collection

Public Property Get Item(Index As Long) As cItem
    Set Item = Items(Index)
End Property

Public Property Set Item(Index As Long, ByVal m_Value As cItem)
    Items(Index).Add m_Value
End Property

Public Property Get Value() As String
    Value = m_Value
End Property

Public Property Let Value(ByVal m_NewValue As String)
    m_Value = m_NewValue
End Property

Public Function AddItem(NewItem As cItem)
    ReDim Preserve Items(1 To Count + 1)
    Set Item(UBound(Items)) = NewItem
    Items(UBound(Items)).Add NewItem
End Function

Public Property Get Count() As Long
On Error Resume Next
    Err.Clear
    Count = UBound(Items)
    If Err.Number <> 0 Then Count = 0
End Property

Comprend pas pourquoi ça marche pas =S

Commentaire de BozzoDodo le 08/08/2004 21:57:06

petite erreur dans AddItem:

Public Function AddItem(NewItem As cItem)
    ReDim Preserve Items(1 To Count + 1)
    Set Item(UBound(Items)) = NewItem
End Function

Voila mais ca marche toujours pas! Quelqu'un (code1 et BruNews vous avez l'air d'y connaitre jme trompe? :D) sait comment faire?

Commentaire de cyrilp le 09/08/2004 08:16:07

Niiiiix, à quand un correcteur d'orthographe sur Codes Sources ???

Je n'ai même pas regardé la source, trop de fautes, ça me démotive :-(

Commentaire de BozzoDodo le 09/08/2004 12:11:39

Alala je te conseille de lire comme si ce n'était que des sons =D

Commentaire de cyrilp le 09/08/2004 12:56:06

BozzoDodo > lol ;) je vais créér une fonction de lecture phonétique et lire la page avec :-D !

Bonne idée ;) !

Commentaire de cyrilp le 09/08/2004 14:13:57

Allez, malgré l'orthographe, je met 7 pour t'encourager !

C'est assez intéressant, ... mais vu que tu enregistres totalement tes données dans des variables avant d'écrire le fichier, la mémoire vive est fortement solicitée si tu comptes enregistrer enormement de données !!!

Ca serait bien aussi de prévoir tout ceci sous forme de classes avec fonction d'ajout, suppression, recherche, etc... ;)

Commentaire de legion91 le 09/08/2004 14:45:11

Désolé pour les fautes.

Je n'irais pas plus loin dans la conception car il faut que le code reste simple, à la porter de tout le monde, apres chacun peut le modifié à sa giz. Mais heureux de voir que certain planche dessus et donne des idéés pour l'ameliorer.

Après pour tout ce qui est classes, c'est trop compliker pour moi.

Commentaire de saados le 18/09/2004 01:47:47

pas mal!

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales