[VBA] transforme unix en windows

transforme unix en windows [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 29-11-2013 à 10:42:34    

Bonjour,
 
Malgré mes différentes recherches, je n'ai pas pu trouver mon bonheur.
Je cherche à avoir un apercu d'un fichier txt des 5 premières lignes.
or mon code ne fonctionne pas pour fichier txt unix.
J'ai essayer unix2dos, mais cela m'affiche une fenetre et je veux pas que les utilisateurs gère cela. Tout doit se faire dans mon programme VBA.
 
COde :
 
Dim intFic,i As Integer
Dim strLigne, temp As String
intFic = FreeFile
strLigne = ""
 
Open ResultsAsso.nom_chemin For Input As intFic
 
Shell ("C:\unix2dos.exe" )
 
Line Input #intFic, strLigne ' la 1ère ligne sélectionner
temp = strLigne
 
For i = 1 To 5
    Line Input #intFic, strLigne
    temp = temp & Chr(10) & strLigne  
Next i
Close intFic
MsgBox temp
End Sub
 
Merci d'avance de votre aide.
Cordialement,
Julie

Reply

Marsh Posté le 29-11-2013 à 10:42:34   

Reply

Marsh Posté le 29-11-2013 à 12:24:09    

 
           Bonjour Julie.
 

juliedu63 a écrit :

J'ai essayer unix2dos, mais cela m'affiche une fenetre et je veux pas que les utilisateurs gère cela.
Tout doit se faire dans mon programme VBA.


           As-tu pensé à regarder si cet utilitaire dispose de paramètres ?
 
           Sinon un fichier texte n'étant qu'un fichier texte, pas besoin d'utilitaire, suffit d'éditer le fichier puis repérer
           quelle est la séquence de fin de ligne soit pour la remplacer par celle de Windows
           soit pour directement spliter les lignes en VBA sur cette séquence …
 
           Au passage, ton code ne lit pas cinq lignes mais six !
 

Reply

Marsh Posté le 29-11-2013 à 12:56:58    

Tout d'abord, Merci d'avoir répondu.
 
L'utilitaire ne dispose pas de paramètre. J'ai essayé en rajoutant des paramètres chemin du fichier,...
 
Quand on édite un fichier texte, est-on obligé de l'ouvrir sous Excel ?
Cela veut dire quoi spliter ? Puis avoir plus d'explications pour pouvoir tester le code.
 
Merci de votre remarque sur mon nombre de lignes.
 
Bonne continuation Marc,
Julie

Reply

Marsh Posté le 29-11-2013 à 14:11:19    

juliedu63 a écrit :

L'utilitaire ne dispose pas de paramètre. J'ai essayé en rajoutant des paramètres chemin du fichier,...

            Pour vérifier si un programme dispose de paramètres,
            le B-A-BA est de l'appeler dans une fenêtre d'Invite de commandes suivi de  /?  …
 

juliedu63 a écrit :

Quand on édite un fichier texte, est-on obligé de l'ouvrir sous Excel ?

            Non, j'entendais un éditeur (texte / hexadécimal) de fichiers …
 

juliedu63 a écrit :

Cela veut dire quoi spliter ?

            Référence à la fonction  Split  de VBA …
 
 
            Sinon sans connaître la séquence de fin de ligne sous Unix ou d'avoir un lien sur un tel fichier …
 

Reply

Marsh Posté le 29-11-2013 à 15:52:12    

 
            Comme la fin de ligne sous Unix pourrait être le code de caractère n°10 (sinon \n ?),
            j'ai un gros doute du coup car de plus j'ai laissé passer ceci :

juliedu63 a écrit :

[…] or mon code ne fonctionne pas pour fichier txt unix.


            En clair, sans décodeur, quel est exhaustivement le souci ?


Message édité par Marc L le 29-11-2013 à 15:55:56
Reply

Marsh Posté le 29-11-2013 à 15:57:37    

Merci pour tes réponses.
 
Désolé si je n'étais pas assez clair.
 
Je souhaite pouvoir transformer les fichiers unix en windows sans que l'utilisateur ne s'occupe de cette transformation.
 
Car, en effet, quand je lance unix2dos il y a toujours une fenetre qui apparait.
 
Merci de vos réponses.
Julie

Reply

Marsh Posté le 29-11-2013 à 16:04:40    

 
            Donc "or mon code ne fonctionne pas pour fichier txt unix" n'a alors aucun rapport ‼
 
            Si cet utilitaire n'a pas de paramètre en ligne de commandes, pas de solution si ce n'est faire autrement …
 

Reply

Marsh Posté le 29-11-2013 à 16:06:23    

Avez vous alors des conseils à me donner sur le Autrement.
 :(  
Merci de votre réponse.

Reply

Marsh Posté le 29-11-2013 à 16:17:03    

 
            Comment le pourrais-je vu que le souci n'est toujours pas exhaustivement présenté ?‼
 
            Si tu ouvres directement le fichier, y a t-il un souci ? Et si oui, quel est le besoin ?
 
            A quoi sert l'utilitaire ?
 
            S'il a une réelle utilité, soit l'utiliser au préalable avant de lancer Excel,
            soit en chercher un autre répondant à tes critères soit penser à créer ta propre procédure de conversion …
 
            Si une fenêtre apparait mais que l'utilitaire fonctionne, franchement ce n'est pas un problème !
 
            Au passage dans le code il faut inverser les lignes n°… (ah zut le code n'est pas entre balises grâce à l'icône dédiée)
            l'utilitaire doit être appelé avant l'ouverture du fichier ! …
 

Reply

Marsh Posté le 29-11-2013 à 16:26:18    

Je dois réaliser un aperçu du fichier (ces 6 premières lignes) en cliquant sur un bouton.
 
Cet aperçu fonctionne qu'avec les fichiers txt windows.
 
Le but étant de trouver une solution pour transformer le txt Unix en txt WIndows afin de pouvoir afficher ces 6 premières lignes sans que l'utilisateur est besoin de faire quoi que ce soit.
 
Merci de vos réponses.
Julie

Reply

Marsh Posté le 29-11-2013 à 16:26:18   

Reply

Marsh Posté le 29-11-2013 à 16:55:58    

 
            Là je n'ai plus le temps, je passe la main à un autre intervenant car sans réponse précise
            à toutes mes questions aucune aide je ne pourrais apporter même avec toute la bonne volonté possible …
 

Reply

Marsh Posté le 01-12-2013 à 17:12:50    

Marc L a écrit :

Au passage dans le code il faut inverser les lignes n°… (ah zut le code n'est pas entre balises grâce à l'icône dédiée)
l'utilitaire doit être appelé avant l'ouverture du fichier ! …


            Appeler l'utilitaire avec le fichier en paramètre (…) avant de l'ouvrir au sein la procédure VBA …
 

Reply

Marsh Posté le 10-12-2013 à 13:05:08    

Bonjour,
 
Finalement, j'

Reply

Marsh Posté le 10-12-2013 à 13:07:16    

Bonjour,
 
Exceusez moi pour le message précédent.
Finalement j'ai trouvé une solution : code perl + affichage via un autre userform.
 
Merci de m'avoir toutde même aider.
 
Cordialement,
Julie
 [:gijar]

Reply

Sujets relatifs:

Leave a Replay

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