Modifier une base de données

altozinzin Messages postés 54 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 mai 2011 - 26 août 2006 à 16:19
altozinzin Messages postés 54 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 mai 2011 - 26 août 2006 à 22:59
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 août 2006 à 16:44
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 16:53
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"
<!--
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2006 à 17:53
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.
0
altozinzin Messages postés 54 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 mai 2011
26 août 2006 à 20:47
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 août 2006 à 21:21
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.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 août 2006 à 21:25
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
26 août 2006 à 21:40
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"
<!--
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
26 août 2006 à 22:44
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
0
altozinzin Messages postés 54 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 mai 2011
26 août 2006 à 22:59
Merci pour tout!!
0
Rejoignez-nous