OVH Cloud OVH Cloud

conversion de format de fichiers

9 réponses
Avatar
nasser
bonsoir,je veux convertir un fichier unix au format dos en
VB.
merci.

9 réponses

Avatar
le_troll
Bonjour, je ne sais pas, c'est quoi que fait Unix comme fichier, est-ce
(txt, bin), est-ce lisible par Windows, car dans ce cas VB peut le lire je
pense, faudrait voir avec un spécialiste de la question... Tu peux parfois
passer par l'intermédiaire de Excel ou de Word aussi, pour juste récupérer
les datas et les mettre dans le code afin que temporairement tu puisses
créer ton nouveau fichier... Voir les utilitaires idem...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"nasser" a écrit dans le message de
news: 284b001c463b0$0c7dc720$
bonsoir,je veux convertir un fichier unix au format dos en
VB.
merci.


Avatar
Vincent Guichard
nasser a écrit :

bonsoir,je veux convertir un fichier unix au format dos en
VB.
merci.


Terminateur de ligne Unix: chr$(10)
Terminateur de ligne MAC*: chr$(13)
Terminateur de ligne DOS: chr$(10)+chr$(13)

donc pour passer de Unix à DOS ajouter chr$(13) devant tous les chr$(10)

Voir aussi les utilitaires unix2dos, dos2unix, etc.

Vincent Guichard
Avatar
François Picalausa
Hello,

On pourrait traduire celà en VB par:
Dim FFN As Integer, strBuffer As String
FFN = FreeFile

'Lecture du fichier à convertir
Open "c:fichier_a_convertir.txt" For Binary As FFN
strBuffer = String$(LOF(FFN), vbNullChar)
Get FFN,, strBuffer
Close FFN

strBuffer=Replace(strBuffer, vbCrLf, vbLf) 'Tous les CrLf deviennent des Cr
strBuffer=Replace(strBuffer, vbCr, vbLf) 'Tous les Lf restants deviennent
des Cr

'Ici, tous les retours à la ligne sont des vbLf => format Unix
'On peut les transformer en le séparateur voulu
'Convertion vers DOS:
strBuffer=Replace(strBuffer, vbLf, vbCrLf)

'Convertion vers MAC
'strBuffer=Replace(strBuffer, vbLf, vbCr)

'Réécriture du fichier
Open "c:fichier_converti.txt" For Binary As FFN
Put FFN,, strBuffer
Close FFN

Pour effectuer la convertion sur plusieurs fichiers, on pourrait utiliser
Dir...

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Vincent Guichard" a écrit dans le message
de news:ccg9d2$8ee$
Terminateur de ligne Unix: chr$(10)
Terminateur de ligne MAC*: chr$(13)
Terminateur de ligne DOS: chr$(10)+chr$(13)

donc pour passer de Unix à DOS ajouter chr$(13) devant tous les
chr$(10)


Avatar
ng
Salut,

Terminateur de ligne DOS: chr$(10)+chr$(13)


Non c'est Chr$(13) & Chr$(10) soit vbCr & vbLf ou vbCrLf.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/



Vincent Guichard a écrit :

nasser a écrit :

bonsoir,je veux convertir un fichier unix au format dos en
VB.
merci.


Terminateur de ligne Unix: chr$(10)
Terminateur de ligne MAC*: chr$(13)
Terminateur de ligne DOS: chr$(10)+chr$(13)

donc pour passer de Unix à DOS ajouter chr$(13) devant tous les
chr$(10)

Voir aussi les utilitaires unix2dos, dos2unix, etc.

Vincent Guichard


Avatar
le_troll
Mais ça c'est pour le txt, es-tu certain qu'Unix fait uniquement du txt, car
en binaire, pour placer ses retours ligne et chariot, il va falloir qu'il
recherche un ". ", et encore... Et en txt, parfois ils n'ont pas de retour
1013 = ";" (en fin en VB)...

--
Merci, @+, bye, Joe
troll75 AROBASE iFrance POINT com
------------------------------------------
Ce message est plein de virus "certifiés"
Le_Troll, éleveur de Trolls depuis César, qui disait:
Avec une hache, celui qui tient le manche a toujours raison !
------------------------------------------


"Vincent Guichard" a écrit dans le message de
news: ccg9d2$8ee$
nasser a écrit :

> bonsoir,je veux convertir un fichier unix au format dos en
> VB.
> merci.
Terminateur de ligne Unix: chr$(10)
Terminateur de ligne MAC*: chr$(13)
Terminateur de ligne DOS: chr$(10)+chr$(13)

donc pour passer de Unix à DOS ajouter chr$(13) devant tous les chr$(10)

Voir aussi les utilitaires unix2dos, dos2unix, etc.

Vincent Guichard


Avatar
Vincent Guichard
ng a écrit :
Salut,


Terminateur de ligne DOS: chr$(10)+chr$(13)



Non c'est Chr$(13) & Chr$(10) soit vbCr & vbLf ou vbCrLf.



Oui, c'est vrai... d'ailleurs, dans la suite de mon message, j'ai dit de
mettre un Chr$(13) avant chaque Chr$(10) rencontré. J'ai fait une erreur
inexcusable.

Vincent Guichard
Avatar
Vincent Guichard
La conversion fichier Unix -> DOS n'a aucun sens si ce n'est pour les
fichiers textes. En général, on tient même à s'assurer qu'il n'y a
_aucune_ conversion dans le cas de fichiers textes. Et je ne vois pas à
quoi ton ". " correspond, ni ton ";" (le séparateur d'instruction C?)

Vincent Guichard
Avatar
Pierre Alexis [MVP]
Salut Vincent,

Tu as écrit :

La conversion fichier Unix -> DOS n'a aucun sens si ce n'est pour les
fichiers textes. En général, on tient même à s'assurer qu'il n'y a
_aucune_ conversion dans le cas de fichiers textes. Et je ne vois pas à
quoi ton ". " correspond, ni ton ";" (le séparateur d'instruction C?)



Exact. Vouloir convertir un fichier binaire Unix en Windows n'a absolument
aucun sens ! Etant donné que la notion de "retour à la ligne" n'a pas de sens
dans le cas d'un fichier binaire...

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
Avatar
Vincent Guichard
Vincent Guichard a écrit :
La conversion fichier Unix -> DOS n'a aucun sens si ce n'est pour les
fichiers textes. En général, on tient même à s'assurer qu'il n'y a
_aucune_ conversion dans le cas de fichiers textes. Et je ne vois pas à


lire ici "dans le cas de fichiers binaires"

quoi ton ". " correspond, ni ton ";" (le séparateur d'instruction C?)

Vincent Guichard