IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Traitement de format de fichier


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut Traitement de format de fichier
    Bonjour!

    J'ai cherché longtemps dans les forums, et quelques solutions semblaient se rapprocher de mon problème, mais en vain. Mon programme VB doit lire un fichier ".tab" qui est généré par un autre programme. Ce ".tab" a un fileformat UNIX. VB le lit donc par colonne au lieu de le lire ligne par ligne, mais je dois traiter ces données.

    Si je l'ouvre et le renomme manuellement, via TextPad, avec un extension ".txt", ça marche puisqu'il le garde en fileformat "PC", mais comment le faire par code? Si je le copie en changeant son extension(.txt,.swx), il reste en UNIX, et VB ne peut toujours pas le lire ligne par ligne. J'ai cherché pour changer le fileformat lors de la copie, mais je n'ai rien trouvé.

    J'ai aussi essayé de créer un document "swx" pour ensuite le copier dedans, car tous les ordis sont en Open Office, mais VB bloque me dit qu'il manque un objet à cet endroit;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oDispatcher = oServiceManager.createInstance("com.sun.star.frame. DispatchHelper
    Voici le code que j'essaie, que j'ai trouvé dans les forums;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim oServiceManager As Object
    Dim oDispatcher As Object
    Dim Desktop As Object, Document As Object
    Dim args()
    Dim Chemin As String
    Range("A1:A5").Copy
     
    Set oServiceManager = CreateObject("com.sun.star.serviceManager")
    Set Desktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
    Set Document = Desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)
    Set oDispatcher = oServiceManager.createInstance("com.sun.star.frame. DispatchHelper")
    oDispatcher.executeDispatch Document.currentController.Frame, ".uno:Paste", "", 0, Array()
    Chemin = Application.worksheetFunction.Substitute(thisWorkbook.Path, "\", "/")
    Est-ce que quelqu'un pourrait m'aider ou du moins m'orienter svp?
    Merci!

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonjour,

    VB le lit donc par colonne au lieu de le lire ligne par ligne...
    Et tu le lis comment avec VB ?
    Comme un fichier texte ou comme un fichier binaire, avec quelles instructions?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut
    Je le lit comme un fichier texte, ainsi;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
         Open Chemin For Input As #numFichier
              Do While Not EOF(numFichier)
                   Line Input #numFichier, ligneATraiter
              Loop
         Close #numFichier
    Je mets chaque ligne dans un tableau, et quand je fais un msgbox pour voir le contenu du tableau, il affiche tout exactement comme dans le fichier, comme si tout était dans la même ligne.

  4. #4
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    tu peux mettre un fichier "tab" en piece jointe ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut
    J'ai essayé de le joindre, mais il me dit fichier non vallide!!! Je l'ai joint avec l'extension ".txt", mais le contenu est pareil comme le ".tab"(il ne fonctionne pas plus).

    Je l'ai ouvert normalement avec TextPad, et si je fais un "save as", je vois le file format qui est UNIX. Si je met PC dans file format, le fichier est lu correctement, mais comment le faire par code?
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    C'est déjà beacoup plus simple pour moi de comprendre avec le fichier joint. Tu n'as pas de CrLf pour séparer tes données mais simplement des Lf (pour t'en rendre compte, il suffisait de lire la chaine lue caractère par caractère et d'afficher le code ASCII de chaque caractère)
    Il te suffit donc de lire le fichier d'un bloc, puis de splitter la chaine obtenue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Open Chemin For Input As #numFichier
       Line Input #numFichier, FichierEnBloc
     Close #numFichier
    FichierParLigne = Split(FichierEnBloc,vblf)
    Debug.Print "nombre de lignes dans le fichier = " & UBound(FichierParLigne ) + 1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] Format de fichier inattendu
    Par k2r.fr dans le forum Flash
    Réponses: 1
    Dernier message: 05/07/2005, 11h43
  2. [C / C++][Format de fichier] Le TIFF G4
    Par chronos dans le forum Windows
    Réponses: 1
    Dernier message: 17/06/2005, 15h57
  3. Format de fichier extensible
    Par Rodrigue dans le forum C++Builder
    Réponses: 9
    Dernier message: 11/06/2005, 14h45
  4. [Format de Fichier] Recherche de site
    Par Pedro dans le forum Windows XP
    Réponses: 5
    Dernier message: 12/04/2005, 16h11
  5. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 20h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo