Bug sur Line Input

perenthian

XLDnaute Nouveau
Bonjour,

voici un bout de code qui bug sur une ligne particulière et cela me laisse perplexe car cela semble être la syntaxe normale.

Dim xHDB(10000) As Variant (essayer avec ou sans) 'declaration de variable
Dim x_repdeb_HDB(20, 2) 'declaration de variable

Open link For Input As 1 'ouverture du fichier, link est connu

Nbline = 0 'initialisation
NSTR = 0 'initialisation
r = 1 'initialisation

Do While Not EOF(1) 'lecture classique du fichier ouvert link jusqu'a la fin
Line Input #1, xHDB(r) 'lecture ligne par ligne, rangee dans xHDB(indice_incremente) > bug, fin de la complilation
If InStr(xHDB(r), " STRUCTURES_NUMBER") <> 0 Then
R_part_com = r
End If
If InStr(xHDB(r), " STRUCTURE_") <> 0 Then
NSTR = NSTR + 1
x_repdeb_HDB(NSTR, 1) = r
End If

r = r + 1

Loop

Merci d'avance
 

Roland_M

XLDnaute Barbatruc
Re : Bug sur Line Input

bonjour,

Line Input #1, xHDB(r) 'lecture ligne par ligne, rangee dans xHDB(indice_incremente) > bug, fin de la complilation

essai de déclarer xHDB(r) as string
ensuite il est fort possible qu'il n'y ai pas de retour ligne d'ou blocage pour loader !?
 

perenthian

XLDnaute Nouveau
Re : Bug sur Line Input

Marche pas mieux avec as String.

Je n'ai pas compris la suite de ta remarque.

Voici la macro en entier :

Code:
Sub HDB_cutter()

onglet = ThisWorkbook.Worksheets.Count

If onglet > 2 Then

    Worksheets("General").Activate

    Dim xHDB(10000) As String
    Dim x_repdeb_HDB(20, 2)
    
    namepath = Cells(11, 2)
    database = Cells(14, 2)
    file = database & ".HDB"
    link = namepath & file
    link1 = namepath & database

    Open link For Input As 1

    Nbline = 0
    NSTR = 0
    r = 1

    Do While Not EOF(1)
        Line Input #1, xHDB(r)
            If InStr(xHDB(r), " STRUCTURES_NUMBER") <> 0 Then
                R_part_com = r
            End If
            If InStr(xHDB(r), " STRUCTURE_") <> 0 Then
                NSTR = NSTR + 1
                x_repdeb_HDB(NSTR, 1) = r
            End If

        r = r + 1

    Loop

    RMAX = r
    NSTR_max = NSTR

    Close #1

    For ISTR = 1 To NSTR_max
        Open link1 & ISTR & ".hdb " For Output As 1
            
        For i = 1 To R_part_com
            Print #1, xHDB(i)
        Next
        
        If ISTR <> NSTR_max Then
            Rend1 = x_repdeb_HDB(ISTR + 1, 1) - 1
        Else
            Rend1 = RMAX
        End If
        
        For i = x_repdeb_HDB(ISTR, 1) To Rend1
            Print #1, xHDB(i)
        Next
        
        Close #1
    
    Next

Else
   MsgBox "Be careful : HDB data are not available"
End If

End Sub
 

Roland_M

XLDnaute Barbatruc
Re : Bug sur Line Input

re

Code:
'1' exemple
Open "nom du fichier" For Output As #1
Print #1, "Ligne 1"
Print #1, "Ligne 2"
Print #1, "Ligne 3"
Close
'je load
Open "nom du fichier" For Input As #1
Input #1, A$ '         <<< sera = "Ligne 1"
'ou
Line Input #1, A$ ' <<< sera = "Ligne 1"
'etc idem pour "Ligne 2" ...
Close


'2' exemple
Open "nom du fichier" For Output As #1
Print #1, "Ligne 1"; "Ligne 2"; "Ligne 3"
Close
'je load
Open "nom du fichier" For Input As #1
Input #1, A$ '      <<< sera = "Ligne 1" le suivant sera = "Ligne 2" ...
'mais
Line Input #1, A$ ' <<< sera = "Ligne 1Ligne 2Ligne 3" (soit toutes les données en ligne !?)
Close
 
Dernière édition:

perenthian

XLDnaute Nouveau
Re : Bug sur Line Input

re

si tu connais pas "séquentiel" alors pourquoi cette marco !?

tu essais de l'ouvrir avec un éditeur de texte, genre bloc notes !
si ça marche pas ce n'est pas bon signe !?
Pourquoi pas ? J'ai un fichier, une base de donnée en ".hdb" qui sort d'un logiciel, ouvrable avec excel (lourd) ou bloc note (rapide) mais on ne peut pas l'exploiter comme on veut tel quel. Voila...

Je peux te dire comment il est construit, ce que je veux en faire, mais le séquentiel, je ne sais pas ce que c'est...

On a une partie de la ligne 1 jusqu’à une ligne qui contient "STRUCTURES_NUMBER" => partie commune
Ensuite, on a des parties qui se répètent qui contiennent "STRUCTURE_" suivit d'un numéro => parties indépendantes

Je veux créer des nouveaux fichiers contenant la partie commune en début et 1 partie indépendante a suivre soit autant de nouveaux fichiers que de parties indépendantes. Tant qu'a faire en passer par bloc note qui est léger et rapide...
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22