fichier CSV

fichier CSV - VB/VBA/VBS - Programmation

Marsh Posté le 28-12-2004 à 18:51:43    

je suis entrain de lire et d'ecrire sur un fichier .CSV dont le format n'est pas du texte mais des données hexa ou  des caracteres ascii en hexa de ce type:
0001,0002,000a,001f,2020,3232 etc et le fichier fait 1.3Mo.
lorsque j utilise print#, write#, put etc, les données sont modifiées avec des "" ou des sauts à la lignes ou autres caracteres genant.
 
lire le fichier Ok mais l'ecrire dans sont format d'origine impossible  
 
DE L AIDE Merci

Reply

Marsh Posté le 28-12-2004 à 18:51:43   

Reply

Marsh Posté le 05-01-2005 à 09:55:02    

J'ai déjà eu quelques problèmes pour ajouter une première ligne à un fichier avec ces fonctions. J'avais une première ligne que je voulais effacer et remplacer par une autre, malheureusement la nouvelle ligne contenait moins de caractères et il me restait des caractères parasites en fin de ligne, voir des retours chariots, et j'obtenais aussi des données binaires en début de ligne.
Au final voici comment on a fait:

Code :
  1. 'quand on exporte une chaîne à taille fixe on a un export propre
  2. 'mais il faut connaître à l'avance la taille des enregistrements
  3. 'à écraser (et l'ajout d'espaces en fin de taille fixe ne marche
  4. 'pas bien.
  5. 'A l'inverse il est aisé de remplacer une ligne avec une
  6. 'chaîne 'classique' mais Access ajoute 2 octets de description
  7. 'binaires devant cette chaîne.
  8. 'On va donc mettre des blancs dans la première ligne avec la 1ere
  9. 'méthode puis mettre le vrai contenu de cette première ligne avec
  10. 'une chaîne fixe de taille inférieure...
  11. 'remplir la première ligne avec des espaces
  12. Open CheminFichierTxt For Random As #FileNumber Len = nb + 2
  13. Dim maString As String
  14. maString = Space(nb - 2) & vbCrLf
  15. 'Ce put avec une string 'classique' va mettre deux octets en début de ligne
  16. 'par contre, contrairement au put à taille fixe qui suit plus bas il peut
  17. 'compléter la ligne avec des blancs, jusqu'au bout
  18. Put #FileNumber, 1, maString
  19. Close #FileNumber
  20. 'mettre ce qu'on veut vraiment dans maString
  21. maString = "toto....."
  22. Dim chainefixe01 As String * 55
  23. nb = nb - Len(chainefixe01)
  24. chainefixe01 = maString
  25. 'le put marche mieux avec du taille fixe, il ne va pas mettre les deux octets en début de ligne
  26. Open CheminFichierTxt For Random As #FileNumber Len = Len(chainefixe01) + 2
  27. Put #FileNumber, 1, chainefixe01
  28. Close #FileNumber

Reply

Marsh Posté le 05-01-2005 à 18:37:47    

Oui j'ai trouvé la solution en ouvrant tout le fichier dans des donnée(x,y) et en recompilant pour le réecrire dans le fichier avec la fonction print #1 qui ne met pas de " en début mais seulement retour chariot et passge à la ligne mais dont mon automate OMRON ne fais pas attention.IL  me reste à trouver comment faire des graphiques avec mes infos merci bye

Reply

Sujets relatifs:

Leave a Replay

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