Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lire fichier externe pour exploitation

12 réponses
Avatar
Bruno Frisque
Bonjour le Groupe,

Il me faudrait pouvoir lire un fichier 'VoieUtf8', qui n'a pas d'extension.
J'ai tente call shell(notepad voieutf8, il affiche bien tout le fichier sous
Notaped, mais sans pouvoir l'exploiter ..
J'ai alors tente tout ceci :

Set FSO = CreateObject("Scripting.FileSystemObject")

Dim File As Object
'Set File = FSO.OpenTextFile("C:\Data\" & "voieutf8", 1, False) '< ok BUT
still in UTF8 ! (no notepad) 01/07/09
'Set File = FSO.OpenTextFile("Notepad.exe" & "voieutf8", 1, False) '< file
not found
'Set File = FSO.OpenTextFile("Notepad.exe" & " C:\Data\voieutf8", 1, False)
'bad file name or number
'Set File = FSO.OpenTextFile("C:\i386\Notepad.exe" & " C:\Data\voieutf8",
1, False) 'bad file name or number
'Set File = FSO.OpenTextFile("C:\i386\Notepad.exe voieutf8", 1, False)
'file not found
'Set File = FSO.OpenTextFile("Notepad voieutf8", 1, False) 'file not found
'Set File = FSO.OpenTextFile("Notepad.exe voieutf8", 1, False) 'file not
found
'Set File = FSO.OpenTextFile("Notepad.exe ", 1, False) ' ligne lue =
chinese ?
'Set File = FSO.OpenTextFile("Notepad.exe Voieutf8", 1, False) 'file not
found

Une idée ou une piste serait plus que bienvenue !

D'avance merci
Bien à vous
Bruno

2 réponses

1 2
Avatar
Bruno Frisque
Bonjour,

C'était l'idée de génie ça ...
Appeler le fichier 'Rues' dans Notapad, et puis le sauver sous format ANSI.
(Tous les caractères UTF8 sont convertis en lettres avec accents)
Cela en fait 'Rues.txt'
On le renomme en "Rues' (l'utilisateur aura + difficile de le lire ..?)
Et alors on peut le loader et le travailler avec FSO.

Mais par contre pour en faire un Listbox ?? Là il faudrait en faire une vrai
Table ...

Encore merci
A+


"Blaise Cacramp" wrote in message
news:%230JpN1l$
Selon : Bonjour ou bonsoir.


TransferText (oui je suis parfois têtu) permet de transférer des données
externes vers une table Access. (on est bien dans un forum Access).
Une fois ces données transférées, tu en fais ce que tu veux, facilement.
Peu importe qu'elles changent toutes les mois, toutes les semaines ou
toutes les heures.

+++

Tu ne sauras pas _intégrer_ notepad *dans* FSO, ce sont deux mondes
différents. Par contre, l'un après l'autre ...
Alors, tu ouvres ton fichier dans notepad.exe
puis tu fais "enregistrer sous" et tu choisis le format qui te convient et
t'enregistres.
Tu peux alors lancer ta procédure FSO.

+++

Pour automatiser, tu peux explorer la piste du SendKeys. Je me souviens
qu'en VB on pouvait "envoyer des touches" à une application externe
(D'ailleurs l'exemple de la doc le faisait avec calc.exe). Avec VBA, je
ne sais pas trop si c'est faisable tel quel, mais il devrait y avoir moyen
ne fut-ce qu'au travers d'API.
J'ai pas envie de chercher aujourd'hui.

Il faut quand même savoir que SendKeys est archaïque et qu'une
intervention manuelle peut perturber le bon fonctionnement avec alors des
résultats complètement imprévisibles.

+++

Ensuite, je suis sérieusement sceptique quand à la capacité de notepad
d'ouvrir 150000 enregistrements du type "9999999910001017Rue de la
/Collégiale*/Collegialestraat#"

Cdt, Blaise
---- ---- ----


"Bruno Frisque" a écrit dans le message de
news: e42BWJj$
Bonjour bonjour,

En utilisant FSO, les records s'affichent en UTF8 code, et donc (très)
difficilement exploitables ...
Dim fso, ts, s
Const ForReading = 1 '< 1 = Unicode ?
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("c:DataVoies", ForReading)
Do Until ts.AtEndOfStream
s = ts.ReadLine
Debug.Print "Record content = " & s
'do whathever you want avec ce record
Ce qui nous donne :
9999999910001017Rue de la /Collégiale*/Collegialestraat#



Avec Call Shell("NOTEPAD.EXE" & " C:Datavoies", 1)
Le Notepad s'affiche avec les records bien traduits :

9999999910001017Rue de la /Collégiale*/Collegialestraat#

La question donc :
Comment introduire le NOTEPAD.exe dans ce FSO ??
OU : est-il possible de parcourir les enregistrements de cette fenêtre
Notepad ??

D'avance merci !

pm : TransferText ne concerne que des tables d'Access. Et le fichier
'Voies' est séparé du programme, et change toutes les semaines ... Donc
pas possible de l'importer ni de le Linker.



"Bruno Frisque" wrote in message
news:OV$xRVz%
Merci réponse,

Dans ce cas, cela fonctionne ok, mais le texte reste en UTF8 (les é
sont 2 car chinois .. etc)
Quand on appelle ce fichier sous Notaped, les records sont parfaits avec
accents etc ...

Question donc : comment ouvrir Notepas et en exploiter les records ?
(+/- 150.000)

En core merci !


"Blaise Cacramp" wrote in message
news:OleOvRz%
Selon : Bonjour ou bonsoir

En retirant toute référence à notepad (et son chemin) dans le FSO ?


Cdt, Blaise
---- ---- ----


"Bruno Frisque" a écrit dans le message de
news: %23M2Lrzx%
Bonjour le Groupe,

Il me faudrait pouvoir lire un fichier 'VoieUtf8', qui n'a pas
d'extension.
J'ai tente call shell(notepad voieutf8, il affiche bien tout le
fichier sous Notaped, mais sans pouvoir l'exploiter ..
J'ai alors tente tout ceci :

Set FSO = CreateObject("Scripting.FileSystemObject")

Dim File As Object
'Set File = FSO.OpenTextFile("C:Data" & "voieutf8", 1, False) '< ok
BUT still in UTF8 ! (no notepad) 01/07/09
'Set File = FSO.OpenTextFile("Notepad.exe" & "voieutf8", 1, False) '<
file not found
'Set File = FSO.OpenTextFile("Notepad.exe" & " C:Datavoieutf8", 1,
False) 'bad file name or number
'Set File = FSO.OpenTextFile("C:i386Notepad.exe" & "
C:Datavoieutf8", 1, False) 'bad file name or number
'Set File = FSO.OpenTextFile("C:i386Notepad.exe voieutf8", 1, False)
'file not found
'Set File = FSO.OpenTextFile("Notepad voieutf8", 1, False) 'file not
found
'Set File = FSO.OpenTextFile("Notepad.exe voieutf8", 1, False) 'file
not found
'Set File = FSO.OpenTextFile("Notepad.exe ", 1, False) ' ligne lue =
chinese ?
'Set File = FSO.OpenTextFile("Notepad.exe Voieutf8", 1, False) 'file
not found

Une idée ou une piste serait plus que bienvenue !

D'avance merci
Bien à vous
Bruno






















Avatar
Blaise Cacramp
Hum

Génie ?

hum hum
;-)

"Bruno Frisque" a écrit dans le message de
news: %
Bonjour,

C'était l'idée de génie ça ...
Appeler le fichier 'Rues' dans Notapad, et puis le sauver sous format
ANSI.
(Tous les caractères UTF8 sont convertis en lettres avec accents)
Cela en fait 'Rues.txt'
On le renomme en "Rues' (l'utilisateur aura + difficile de le lire ..?)
Et alors on peut le loader et le travailler avec FSO.

Mais par contre pour en faire un Listbox ?? Là il faudrait en faire une
vrai Table ...

Encore merci
A+


"Blaise Cacramp" wrote in message
news:%230JpN1l$
Selon : Bonjour ou bonsoir.


TransferText (oui je suis parfois têtu) permet de transférer des données
externes vers une table Access. (on est bien dans un forum Access).
Une fois ces données transférées, tu en fais ce que tu veux, facilement.
Peu importe qu'elles changent toutes les mois, toutes les semaines ou
toutes les heures.

+++

Tu ne sauras pas _intégrer_ notepad *dans* FSO, ce sont deux mondes
différents. Par contre, l'un après l'autre ...
Alors, tu ouvres ton fichier dans notepad.exe
puis tu fais "enregistrer sous" et tu choisis le format qui te convient
et t'enregistres.
Tu peux alors lancer ta procédure FSO.

+++

Pour automatiser, tu peux explorer la piste du SendKeys. Je me souviens
qu'en VB on pouvait "envoyer des touches" à une application externe
(D'ailleurs l'exemple de la doc le faisait avec calc.exe). Avec VBA, je
ne sais pas trop si c'est faisable tel quel, mais il devrait y avoir
moyen ne fut-ce qu'au travers d'API.
J'ai pas envie de chercher aujourd'hui.

Il faut quand même savoir que SendKeys est archaïque et qu'une
intervention manuelle peut perturber le bon fonctionnement avec alors des
résultats complètement imprévisibles.

+++

Ensuite, je suis sérieusement sceptique quand à la capacité de notepad
d'ouvrir 150000 enregistrements du type "9999999910001017Rue de la
/Collégiale*/Collegialestraat#"

Cdt, Blaise
---- ---- ----


"Bruno Frisque" a écrit dans le message de
news: e42BWJj$
Bonjour bonjour,

En utilisant FSO, les records s'affichent en UTF8 code, et donc (très)
difficilement exploitables ...
Dim fso, ts, s
Const ForReading = 1 '< 1 = Unicode ?
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("c:DataVoies", ForReading)
Do Until ts.AtEndOfStream
s = ts.ReadLine
Debug.Print "Record content = " & s
'do whathever you want avec ce record
Ce qui nous donne :
9999999910001017Rue de la /Collégiale*/Collegialestraat#



Avec Call Shell("NOTEPAD.EXE" & " C:Datavoies", 1)
Le Notepad s'affiche avec les records bien traduits :

9999999910001017Rue de la /Collégiale*/Collegialestraat#

La question donc :
Comment introduire le NOTEPAD.exe dans ce FSO ??
OU : est-il possible de parcourir les enregistrements de cette fenêtre
Notepad ??

D'avance merci !

pm : TransferText ne concerne que des tables d'Access. Et le fichier
'Voies' est séparé du programme, et change toutes les semaines ... Donc
pas possible de l'importer ni de le Linker.



"Bruno Frisque" wrote in message
news:OV$xRVz%
Merci réponse,

Dans ce cas, cela fonctionne ok, mais le texte reste en UTF8 (les é
sont 2 car chinois .. etc)
Quand on appelle ce fichier sous Notaped, les records sont parfaits
avec accents etc ...

Question donc : comment ouvrir Notepas et en exploiter les records ?
(+/- 150.000)

En core merci !


"Blaise Cacramp" wrote in message
news:OleOvRz%
Selon : Bonjour ou bonsoir

En retirant toute référence à notepad (et son chemin) dans le FSO ?


Cdt, Blaise
---- ---- ----


"Bruno Frisque" a écrit dans le message
de news: %23M2Lrzx%
Bonjour le Groupe,

Il me faudrait pouvoir lire un fichier 'VoieUtf8', qui n'a pas
d'extension.
J'ai tente call shell(notepad voieutf8, il affiche bien tout le
fichier sous Notaped, mais sans pouvoir l'exploiter ..
J'ai alors tente tout ceci :

Set FSO = CreateObject("Scripting.FileSystemObject")

Dim File As Object
'Set File = FSO.OpenTextFile("C:Data" & "voieutf8", 1, False) '< ok
BUT still in UTF8 ! (no notepad) 01/07/09
'Set File = FSO.OpenTextFile("Notepad.exe" & "voieutf8", 1, False) '<
file not found
'Set File = FSO.OpenTextFile("Notepad.exe" & " C:Datavoieutf8", 1,
False) 'bad file name or number
'Set File = FSO.OpenTextFile("C:i386Notepad.exe" & "
C:Datavoieutf8", 1, False) 'bad file name or number
'Set File = FSO.OpenTextFile("C:i386Notepad.exe voieutf8", 1,
False) 'file not found
'Set File = FSO.OpenTextFile("Notepad voieutf8", 1, False) 'file not
found
'Set File = FSO.OpenTextFile("Notepad.exe voieutf8", 1, False) 'file
not found
'Set File = FSO.OpenTextFile("Notepad.exe ", 1, False) ' ligne lue =
chinese ?
'Set File = FSO.OpenTextFile("Notepad.exe Voieutf8", 1, False) 'file
not found

Une idée ou une piste serait plus que bienvenue !

D'avance merci
Bien à vous
Bruno


























1 2