OVH Cloud OVH Cloud

OpenText & FieldInfo

4 réponses
Avatar
John Fuss
Bonjour à tous,

j'ai une fonction que j'utilise pour ouvrir indifferment des fichiers ASC,
ARH, CSV, XLS, SEQ, EPE, TXT et j'en passe, mais je me heurte au problèmes
des formats des colonnes.

D'après plusieurs posts je ne suis pas le seul mais les solutions proposées
ne me conviennent pas (comme une ouverture de fichier via Open monFichier
avec Split() et format() qui prend trop de temps).
Quand je mets dans FieldInfo juste les infos pour mes colonnes dates par
exemple :
Array(array(1, 4), array(35, 4)) ça ne fonctionne pas. La technique est de
renseigner le format de chaque colonne.
Sachant que je ne sais pas combien de colonnes j'ai dans le fichier je ne
peux pas généré le FieldInfo qui va bien.

Ma question : comment connaitre le nombre de colonnes sur un fichier texte
en connaissant le séparateur de données et sans l'ouvrir si possible ?
J'ai pensé à utiliser un Open monFichier for Input as #1 mais si on a autre
chose je suis preneur.

Merci d'avance.

John

4 réponses

Avatar
isabelle
bonjour John,

essaie en indiquant seulement
FieldInfo:=Array(Array(1, 1))

isabelle

Bonjour à tous,

j'ai une fonction que j'utilise pour ouvrir indifferment des fichiers ASC,
ARH, CSV, XLS, SEQ, EPE, TXT et j'en passe, mais je me heurte au problèmes
des formats des colonnes.

D'après plusieurs posts je ne suis pas le seul mais les solutions proposées
ne me conviennent pas (comme une ouverture de fichier via Open monFichier
avec Split() et format() qui prend trop de temps).
Quand je mets dans FieldInfo juste les infos pour mes colonnes dates par
exemple :
Array(array(1, 4), array(35, 4)) ça ne fonctionne pas. La technique est de
renseigner le format de chaque colonne.
Sachant que je ne sais pas combien de colonnes j'ai dans le fichier je ne
peux pas généré le FieldInfo qui va bien.

Ma question : comment connaitre le nombre de colonnes sur un fichier texte
en connaissant le séparateur de données et sans l'ouvrir si possible ?
J'ai pensé à utiliser un Open monFichier for Input as #1 mais si on a autre
chose je suis preneur.

Merci d'avance.

John




Avatar
MichDenis
Bonjour John,

Voci une fonction pour déterminer le nombre de ligne dans un fichier texte :

'---------------------------
Sub Test()
'nom du fichier , Séparateur
MsgBox NombreColonnes("c:Atravaildenis.txt", ";")

End Sub
'---------------------------

'------------------------------
Function NombreColonnes(Fichier As String, Sep As String)

Dim A As String, B As Integer

Open Fichier For Input As 1
Do While Not EOF(1)
Input #1, A
If A <> "" Then
Exit Do
End If
Loop
Close
NombreColonnes = _
Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1

End Function
'------------------------------------


Salutations!




"John Fuss" a écrit dans le message de news: d366rn$lm9$
Bonjour à tous,

j'ai une fonction que j'utilise pour ouvrir indifferment des fichiers ASC,
ARH, CSV, XLS, SEQ, EPE, TXT et j'en passe, mais je me heurte au problèmes
des formats des colonnes.

D'après plusieurs posts je ne suis pas le seul mais les solutions proposées
ne me conviennent pas (comme une ouverture de fichier via Open monFichier
avec Split() et format() qui prend trop de temps).
Quand je mets dans FieldInfo juste les infos pour mes colonnes dates par
exemple :
Array(array(1, 4), array(35, 4)) ça ne fonctionne pas. La technique est de
renseigner le format de chaque colonne.
Sachant que je ne sais pas combien de colonnes j'ai dans le fichier je ne
peux pas généré le FieldInfo qui va bien.

Ma question : comment connaitre le nombre de colonnes sur un fichier texte
en connaissant le séparateur de données et sans l'ouvrir si possible ?
J'ai pensé à utiliser un Open monFichier for Input as #1 mais si on a autre
chose je suis preneur.

Merci d'avance.

John
Avatar
MichDenis
Vous avez sans doute corriger, c'est le nombre de colonnes et non pas de lignes d'un fichier texte avec séparateur !

'---------------------------
Sub Test()
'nom du fichier , Séparateur
MsgBox NombreColonnes("c:Atravaildenis.txt", ";")

End Sub
'---------------------------

'------------------------------
Function NombreColonnes(Fichier As String, Sep As String)

Dim A As String, B As Integer

Open Fichier For Input As 1
Do While Not EOF(1)
Input #1, A
If A <> "" Then
Exit Do
End If
Loop
Close
NombreColonnes = _
Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1

End Function
'------------------------------------


Salutations!




"John Fuss" a écrit dans le message de news: d366rn$lm9$
Bonjour à tous,

j'ai une fonction que j'utilise pour ouvrir indifferment des fichiers ASC,
ARH, CSV, XLS, SEQ, EPE, TXT et j'en passe, mais je me heurte au problèmes
des formats des colonnes.

D'après plusieurs posts je ne suis pas le seul mais les solutions proposées
ne me conviennent pas (comme une ouverture de fichier via Open monFichier
avec Split() et format() qui prend trop de temps).
Quand je mets dans FieldInfo juste les infos pour mes colonnes dates par
exemple :
Array(array(1, 4), array(35, 4)) ça ne fonctionne pas. La technique est de
renseigner le format de chaque colonne.
Sachant que je ne sais pas combien de colonnes j'ai dans le fichier je ne
peux pas généré le FieldInfo qui va bien.

Ma question : comment connaitre le nombre de colonnes sur un fichier texte
en connaissant le séparateur de données et sans l'ouvrir si possible ?
J'ai pensé à utiliser un Open monFichier for Input as #1 mais si on a autre
chose je suis preneur.

Merci d'avance.

John
Avatar
John Fuss
J'ai utilisé ce moyen là pour y parvenir :

nbrCol = NbrOccurences(fso.OpenTextFile(fichier, ForReading).ReadLine,
Separator) + 1

ou fso est un FileSystemObject & NbrOccurences une fonction comptant le
nombre de 'Separator'.

John

et Merci MichDenis.

"MichDenis" a écrit dans le message de
news:%
Vous avez sans doute corriger, c'est le nombre de colonnes et non pas de
lignes d'un fichier texte avec séparateur !


'---------------------------
Sub Test()
'nom du fichier , Séparateur
MsgBox NombreColonnes("c:Atravaildenis.txt", ";")

End Sub
'---------------------------

'------------------------------
Function NombreColonnes(Fichier As String, Sep As String)

Dim A As String, B As Integer

Open Fichier For Input As 1
Do While Not EOF(1)
Input #1, A
If A <> "" Then
Exit Do
End If
Loop
Close
NombreColonnes = _
Len(A) - Len(WorksheetFunction.Substitute(A, Sep, "")) + 1

End Function
'------------------------------------


Salutations!




"John Fuss" a écrit dans le message de news:
d366rn$lm9$

Bonjour à tous,

j'ai une fonction que j'utilise pour ouvrir indifferment des fichiers ASC,
ARH, CSV, XLS, SEQ, EPE, TXT et j'en passe, mais je me heurte au
problèmes

des formats des colonnes.

D'après plusieurs posts je ne suis pas le seul mais les solutions
proposées

ne me conviennent pas (comme une ouverture de fichier via Open monFichier
avec Split() et format() qui prend trop de temps).
Quand je mets dans FieldInfo juste les infos pour mes colonnes dates par
exemple :
Array(array(1, 4), array(35, 4)) ça ne fonctionne pas. La technique est de
renseigner le format de chaque colonne.
Sachant que je ne sais pas combien de colonnes j'ai dans le fichier je ne
peux pas généré le FieldInfo qui va bien.

Ma question : comment connaitre le nombre de colonnes sur un fichier texte
en connaissant le séparateur de données et sans l'ouvrir si possible ?
J'ai pensé à utiliser un Open monFichier for Input as #1 mais si on a
autre

chose je suis preneur.

Merci d'avance.

John