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 :

Conversion d'un fichier texte unix -> dos


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut Conversion d'un fichier texte unix -> dos
    Bonjour !

    La question est dans le titre ...

    Connaissez-vous un moyen de convertir un fichier au format UNIX en format DOS. (Je realise un macro qui a pour but de lire un fichier créé sous UNIX et le traiter en excel)

    Pour ma part, Google et la FAQ n'ont rien donné , mais si vous avez un lien ou un bout de code qui peut m'aider ... Merci a vous


  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 807
    Points : 7 613
    Points
    7 613
    Par défaut
    Salut,

    Si c'est un fichier texte, utilise la commande unix2dos

    ça doit être installé sur ta machine Unix.

    Sinon ftp en mode texte (ou ascii) et pas binaire...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut
    En fait ce que je voudrais, c'est que le traitement ce passe dans la macro sous windows ...

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    D'après ce que je vois, unix2dos ne fait que remplacer les VbLf (Chr(10)) en VbCrLf (Chr(13) & Chr(10)).

    Doit pas être bien compliquer à faire.

    Pas le temps de m'y pencher maintenant.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 807
    Points : 7 613
    Points
    7 613
    Par défaut
    Un petit split sur chr(10) alors...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    +1

    J'y ai pensé, en voiture, après mon message de ce matin.

    Sauf si le fichier est très long...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 807
    Points : 7 613
    Points
    7 613
    Par défaut
    Ca, le coup du fichier de 3Mo mal converti, j'y ai encore eu droit cette semaine... je vais finir par avoir une sainte horreur des connexions directes Windows-Unix via "connecter un lecteur réseau"!

    En tous cas, le collègue qui m'a remonté ce soucis ("elle marche pas ta macro!!!") ne jure que par le unix2dos maintenant. Je l'ai surpris à faire de la propagande ce matin!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut
    En fait, les fichiers font plusieurs Mo chaque, et meme certain plusieurs dizaines !

    L'idée la meilleure serait, a mon avis de lire le fichier caractere par caractere et de 'jeter' les chr(10) ...

    PS : je posterai la solution quand je l'aurai ecrite. D'ici la si qqun l'a deja fait ou sait comment faire ...

  9. #9
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 807
    Points : 7 613
    Points
    7 613
    Par défaut
    Il y a possibilité de lire un fichier en utilisant un buffer. Ensuite il faut trouver le chr(10) dans ce que tu as lu, prendre tout ce qu'il y a avant pour ton traitement, garder ce qu'il y a après, ré-initialiser le buffer avec, puis lire la suite du fichier.

    Honnêtement, j'évite de faire ce genre de traitement sur des gros fichiers texte avec une macro... à moins d'avoir du temps à perdre devant l'écran à attendre que ça ait fini. Je me suis encore tenté ce genre de manip vendredi dernier (avec des fichiers de 1Mo), ce matin j'ai passé l'algorithme en java et vite fait. Gain de temps: 15 minutes en macro VBA, 15 secondes en java. Heureusement que Java est sensé être lent...

    Enfin bon, essaye tout de même, ça ne devrait pas être trop long à implémenter. Si c'est trop long, tu auras toujours la solution... unix2dos!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut
    voila la solution (avec un peu de retard ... lol)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Public Function ReadUnixLine(currentFile As Integer) As String
     
    'currentFile = n° de fichier, ouvert par open #
     
        Dim currentChar As Byte
        Dim line As String
     
        line = ""
     
        While &#40;currentChar <> 10 And Not EOF&#40;1&#41;&#41;
            If &#40;currentChar <> 13 And currentChar <> 0&#41; Then
                line = line + Chr&#40;currentChar&#41;
            End If
            Get #currentFile, filePos, currentChar
            filePos = filePos + 1
        Wend
     
        ReadUnixLine = line
     
    End Function
    note : Ce code lit aussi bien les fichiers Unix que Windows 8)

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

Discussions similaires

  1. [WD16] Sauvegarde fichier texte format MS-DOS
    Par J0r_x dans le forum WinDev
    Réponses: 2
    Dernier message: 03/11/2011, 17h13
  2. [XL-2007] Import et conversion d'un fichier texte
    Par stefano dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2011, 10h15
  3. convertir un fichier texte de MS-DOS vers unicode
    Par PyNub dans le forum Général Python
    Réponses: 8
    Dernier message: 17/05/2011, 03h06
  4. [Batch] Convertir fichier csv unix en dos
    Par faulk dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 21/07/2010, 11h51
  5. Conversion automatique de fichiers texte en fichiers xml
    Par kana83 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/10/2008, 10h52

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