Modifier une base de données

Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011
-
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011
-
Voila, j´ai créé une base de données en VB6 pour faire une vidéothèque. (je suis un débutant)
j´ajoute mes DVD grace a:
>open "c:\dvd.txt" for append as #1
>entree = numeroID & "~é" & titredudvd (ou ~é est mon séparateur de liste)
>print #1, entree
>close #1
Jusque là, aucun pb

Ensuite, si je veux modifier une entrée, je fais:
>open "c:\dvd.txt" for input as #2
>dim ligne
>dim tableau
>do while not EOF(2)
> line input #2, ligne
>tableau=split (ligne, "~é")
>if tableau(0)= "X" then(ou X est l´ID de mon DVD)
>numeroID= tableau(0)
>titredudvd=tableau(1)
>end if
>loop
>close #1

et la les informations concernant le DVD numéro
X s´affiche normalment.
C´est la que je suis bloqué, car je ne parvient pas à enregistrer les informations que j´ai modifié.
Quelu´un pourrait-il m´expliquer comment faire.
Merci d´avance, en espérant avoir été clair!!

9 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
ce code devrait te servir :
http://www.codyx.org/snippet_remplacer-chaine-autre-dans-fichier_187.aspx

++
PCPT   [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

dans
Ensuite, si je veux modifier une entrée, je fais:
>open "c:\dvd.txt" for input as #2
>dim ligne
>dim tableau
>do while not EOF(2)
> line input #2, ligne
>tableau= split (ligne, "~é")
>if tableau(0)= "X" then(ou X est l´ID de mon DVD)
>numeroID= tableau(0)
>titredudvd=tableau(1)
>end if
>loop
>close #1

Pourquoi 2 en haut puis 1 en bas ??
D'où l'utilité de la fonction FreeFile().

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Ce n'est pas vraiment une base de données que tu utilise là : c'est un accès direct à un fichier, c'est bien différent !

Pour un accès direct, le plus simple (mais bien compliqué quand même !) c'est de passer par un mode Binary pour l'ouverture de ton fichier. Ca t'oblige par contre à enregistrer les données sous forme binaire et non ASCII !

Sinon, beaucoup plus simple : utilise une VRAIE base de données faite avec Access, SQL Server ou MySQL par exemple.
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011

Merci pour vos réponses.
Mortalino: c'est juste une faute de frappe que j'ai faite
Darksisious, tu pourrais me donner un exemple de ce dont tu parles? merci d'avance.
Sinon quand je modifie une ligne et que je l'enregistre, toutes les autres sont effacés, ce qui est un peu génant, lol
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Et oui, c'est justement le problème lorsque tu travaille dans un fichier à accès direct : si tu ne l'ouvre pas en binaire, ca efface tout !

C'est pour cà : travaille en base de données, bien plus simple qu'un fichier pour ce que tu cherche à faire, crois moi !
Tu trouvera plein d'exemple sur le site.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
le lien que j'ai indiqué ne fais pas d'acces en binary et fonctionne parfaitement

il est évident néanmoins qu'on stoque en base...
(voir rubrique tutoriaux pour commencer)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Sinon, aide toi du snippetde Willy.
Effectivement, il faut placer les données dans une Collection.

Sinon, je rejoins DarkSidious, une bonne base de donnée Access, il n'y a rien de mieux.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Salut,


Pour utiliser un fichier un peu comme une base de données, tu peux ouvrir en mode Random.

NumFichier = Freefile

Open MonFichier For Random As NumFichier Len = Enregistrement


"Enregistrement", c'est le nom d'un Type que tu crées préalablement.


Type MonType

    Numero as string * 5

    Titre as string * 50

    'Autre chose au besoin

End Type

Dim Enregistrement as MonType


Enregistrement.Numero = XYZ

Enregistrement.Titre = "Le titre"


Pour lire et écrire dans le fichier, tu devras utiliser Get et Put

Regarde dans l'aide pour plus de détails

MPi
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011

Merci pour tout!!