Lecture d un fichier (presque) text

Lecture d un fichier (presque) text - VB/VBA/VBS - Programmation

Marsh Posté le 23-01-2007 à 16:27:56    

Salut,

 

je cherche a faire une tache automatisé d'un filtrage d'un gros fichier. Pour cela, je me suis tourné vers du VBScript.

 

J ai trouvé des multitude d'exemple comment ouvrir et lire une ligne.
Mais mon problème est que mon fichier text source est pas francement conforme. chaque ligne ne se fini pas avec CRLF, mais juste CR.

 

Résultat : quand je demande de lire une ligne, il lit la totalité du fichier.

 

Voila mon "programme" de test, il est relativement simple.

 
Code :
  1. Set objFSO = CreateObject("Scripting.FileSystemObject" )
  2. Set objTextFile = objFSO.OpenTextFile("c:\ISA-User.csv", 1,TRUE)
  3. Dim Domain(2000)
  4. Dim Name(2000)
  5. Dim Department(2000)
  6. Dim Mail(2000)
  7. Dim Desc(2000)
  8. i=0
  9. Do Until objTextFile.AtEndOfStream
  10.       arrWorkstations = split(objTextFile.ReadLine, ";" )
  11.       Domain(i)=arrWorkstations(0)
  12.       Name(i)=arrWorkstations(1)
  13.       Department(i)=arrWorkstations(2)
  14.       Mail(i)=arrWorkstations(2)
  15.       Desc(i)=arrWorkstations(3)
  16.       i=i+1
  17.       wscript.echo Desc(i)
  18. loop
  19. objTextFile.Close


Voyez vous une solution pour que mon ReadLine interprète bien le caractère de fin de ligne ?

 

Merci

Reply

Marsh Posté le 23-01-2007 à 16:27:56   

Reply

Marsh Posté le 23-01-2007 à 16:35:04    

Si ton fichierest un fichier CSV, alors utilise simplement le driver OLE DB CSV, qui te permettra d'utiliser le fichier comme si c'était une table d'une base de données.
 
Tu pourras alors lire et écrire dedans via du SQL, ce qui sera à la fois plus pratique et plus performant ;)

Reply

Marsh Posté le 23-01-2007 à 23:22:25    

tres tres interessant ca ...  
il y aurrait de la doc des site avec des exemples ?

Reply

Marsh Posté le 24-01-2007 à 02:42:11    

Ben tu cherchers "OLE DB Connection String" dans google. Tu devrais trouver la syntaxe pour te connecter à un CSV.
 
Ensuite ça marche comme si c'était une base Excel, sâchant que le nom de la table, c'est le nom du fichier.
La première ligne du CSV est traîtée comme le nom des colonnes.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed