Data [Résolu]

Signaler
Messages postés
213
Date d'inscription
vendredi 13 janvier 2006
Statut
Membre
Dernière intervention
20 août 2008
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
bonjour tout le monde
j'ai crée une application qui accede a un chat public et  qui recherche des personne spécifiés dans un fichier text et ui sont charger un par un dans des text ou label,
j'arrvie a enregistrer ses personnes et les chercher mais j'arrive pas a supprimé une data du fichier text, quand la personne est presente sur le chat elle sera supprimer du data et l'application continue a cherché les restant,
j'enregistre avec cet méthode :

Dim iFile As Integer
    iFile = FreeFile
    Open "c:\list.txt " For Output As iFile
        Print #iFile, Text1.Text
        Close iFile

et je charge :

 Dim FF As Integer, vartemp As String, Mydata() As String
FF = FreeFile
Open "c:\list.txt" For Input As #FF
    vartemp = Input$(LOF(FF), #FF)
Close #FF
    Mydata = Split(vartemp, " ")
    Text2.Text = Mydata(1)

mais je sait pas comment effacer une data spécifier, par exemple j'ai 10 data et je veut supprimer le 7eme !!
quelqu'un peut m'aider svp

merci a vous

1 réponse

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
-1- Si tu écrit avec Open Output dans un fichier, celui-ci sera réinitialisé.
Dans ton premier exemple de code, le fichier ne contiendra que le contenu de Text1 et les éventuelles premières données stockées dans ce même fichier disparaitront.
Voir Open Append

-2- Hélas, un fichier texte n'est pas un fichier indexé
Impossible donc de supprimer une donnée en plein milieu.
Tel que tu procèdes, lire d'une seule traite le fichier dans varTemp --> MyData(), il te suffit donc de supprimer myData(x) de ton tableau.
C'est donc du traitement de tableau.
Il faut :
- Créer un deuxième tableau de même dimension - 1  (puisque tu supprime une donnée)
   Dim newData(0 To UBound(myData) - 1) As String
- Créer une boucle For-Next pour recopier les données de myData vers newData :
   monIndex = 0
   For r = 0 à UBound(myData)
- Quand tu veux sauter une des données de myData, tu ne fais rien
- Quand tu rencontres une donnée à conserver :
   If r <> 7 Then   ' 7 dans ton exemple
      newData(monIndex) = myData(r)
      monIndex = monIndex  + 1
   End If
- Et tu finis par un
   Next r

Les nouvelles données sont maintenant dans newData()
A toi de les restocker dans le fichier

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)