Suppresion ligne

Résolu
Signaler
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007
-
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007
-
Bonjour !

Voila jai un petit probléme, je veut supprimer une ligne dans un fichier texte
J'ouvre le fichier en Input
Je stock le contenu du fichier moin la ligne, dans une variable
Je ferme le fichier
Je l'ouvre en output

Mais la il me dit que le fichier est deja ouvert alors que je l'es fermer avec close#1

Si quelqu'un a la solution a mon probléme ?Merci
Tchao

17 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Oups, oui, bien vu merci

Dim ff1 As Integer
Dim ff2 As Integer

ff1 = FreeFile

Open "C:\blabla\fichier.txt" For Input As #ff1
    ff2 = FreeFile
    Open "C\blabla\un_autre_fichier.txt" As #ff2
       'code de lecture et écriture sumultanée
    Close #ff2
Close #ff1

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Donne le code utilisé, ca aidera.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
fais voir ton code

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
si les centiemes (voir moins)  de secondes s'y mettent aussi....
on va pas s'en sortir mon p'tit Julien ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
11
Trop bien les gars, du jamais vu! Egalité parfaite!

Vous méritez la médaille sur ce qoup là

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,

Quand les grands esprits se rencontrent.... pour une fois je suis devant yahou!!! et même pas besoin de chwoual..

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007

If Second(Time) = 0 Then
        Open (addbase & "" & Nombase) For Binary As #1
        Do
        Line Input #1, textebase
        parabase = Split(textebase, "|")
        finheure = parabase(2)
        findate = parabase(3)
        temp = Split(finheure, ".")
        tempminute = (Val(temp(0)) * 60) + Val(temp(1))
        temp = Split(Format(Time, "hh.mm"), ".")
        tempminutepc = (Val(temp(0)) * 60) + Val(temp(1))
        datepc = Val(Format(Date, "dd")) + Val(Format(Date, "mm")) * 100
        datetab = Split(findate, ".")
        datefinpc = Val(datetab(0)) + Val(datetab(1)) * 100
        If datefinpc > datepc Then
            'on garde
            If textefichier = "" Then
                textefichier = textebase
                Else
                textefichier = textefichier & vbCrLf & textebase
            End If
        Else
           
            If datefinpc = datepc Then
                    If tempminute > tempminutepc Then
                    'on suprime
                    Else
                        If textefichier = "" Then
                        textefichier = textebase
                        Else
                        textefichier = textefichier & vbCrLf & textebase
                        End If
                    End If
            End If
        End If
        Loop While Not EOF(1)
        Close #1
        Open (addbase & "" & Nombase) For Output As #2
        Print #2, textefichier
        Close #2
    End If
   
Voila !
Tchao
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007

Arf rectification 2ieme ligne
Open (addbase & "" & Nombase) For input As #1

Tchao
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
étrange, en effet, je pense qu'il n'a pas finit de jouer avec le fichier....

c'est problématique

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut
Dans le code donné, lors de la seconde ouverture c'est #2 qui doit être déjà ouvert.

D'ou l'utilité d'utiliser FreeFile.

Que cherches tu as faire exactement

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007

je cherche a lire une ligne d'un fichier et si l'heure et la date est passé je supprime la ligne
 Voici un exemple de ligne :
toto|tousleréseaux|23.30|16.06

toto=varible pour mon prog
tousleréseaux = idem
23.30=heure
16.06=date

Et #2 n'est pas utilisé

Tchao
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

Nop, utilise FreeFile comme précédemment dit ^^

Pour ton second problème, utilise la fonction Split :
TableauDeVariables = Split(TaLigne, "|")

Dim i As Long
For i = LBound(TableauDeVariables) To UBound(TableauDeVariables)
    Msgbox TableauDeVariables(i)
Next i

Julien, Renfield :
Bravo
Mais le privilège du nom placé alphabétiquement à parlé..
J Rivet
Renfield

Tiens, JR, John Ross  (Daaaalllaaaaaaaaas)
Ok, je suis fou, je sors

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007

Merci de ton aide peut tu me dire comment fonctionne la fonction FreeFile

Tchao
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Oui,

Dim ff1 As Integer
Dim ff2 As Integer

ff1 = FreeFile
ff2 = FreeFile

Open "C:\blabla\fichier.txt" For Input As #ff1
    Open "C\blabla\un_autre_fichier.txt" As #ff2
       'code de lecture et écriture sumultanée
    Close #ff2
Close #ff1

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Sûrement pas le plus simple mais cela semble fonctionner

Private Sub Form_Load()
Dim NumFile As Integer
Dim Fichier As String
Dim Contenu As String
Dim i As Integer
Dim Lignes() As String
Dim LDate As Date
Dim LHeure As Date
Dim Temoin As Date
Dim LParam() As String
   NumFile = FreeFile
   'Récupère le contenu entier du fichier deflist
   Fichier = "C:\Test.txt"
   Open Fichier For Binary As NumFile
   Contenu = String(LOF(NumFile), 0)
   Get #NumFile, , Contenu
   Close #NumFile
   
   'on recupère les lignes
   Lignes = Split(Contenu, vbCrLf)
   'on efface le contenu
   Contenu = vbNullString
   
   'Temoin de date et heure du debut de boucle
   Temoin = Format(Now, "dd/mm/yyyy hh:mm")
   'pour chaque lignes
   For i = LBound(Lignes) To UBound(Lignes)
       'on récupère les <> eleme
       LParam = Split(Lignes(i), "|")
       'petite sécurité
       If UBound(LParam) = 3 Then
           'on construit la date et l'heure
           LDate = Replace(LParam(3), ".", "/") & "/" & Year(Date)
           LHeure = Format(Replace(LParam(2), ".", ":"), "hh:mm")
           'si le témoin est plus petit => pas encore passe donc on garde
           If Temoin < (LDate & " " & LHeure) Then Contenu = Contenu & Lignes(i) & vbCrLf
       End If
   Next
   
   Open Fichier For Binary As NumFile
         Put #NumFile, , Contenu
   Close #NumFile
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
ff1 = FreeFile
ff2 = FreeFile

ouh, mortalino, c'est inexact

en sortie, tu auras ff1  = ff2

Enyx, je vois aps de soucis ajeur dans ton code
ferme VB et relance ton projet

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
16
Date d'inscription
dimanche 25 juin 2006
Statut
Membre
Dernière intervention
19 juin 2007

Merci beaucoup de votre aide et de votre rapiditée !!!!

Ca fonctionne corectement pour l'ouverture des fichiers (a part ma fonction de comparaison que je doit affiner ^^)

Merci et Tchao !!!!