MISE EN FORME DE FICHIER

cs_sam013 Messages postés 75 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 4 juillet 2005 - 22 août 2004 à 15:55
racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010 - 29 août 2004 à 10:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25593-mise-en-forme-de-fichier

racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010
29 août 2004 à 10:40
ca y est j'ai compris, c'est ca qui ouvre la boite de dialogue
mais non pas sur l'ordi ou suis en ce moment , mais je l'ai sur un autre, j'essaierais .
Merci et a plus
Et sinon ca va mieux mon script avec ses corrections?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 août 2004 à 09:51
d'ou l'installation de VB susditement déclarée inexistante sur ton poste....

en fait, il cherche a utiliser cette Dll, fournie avec VB.

(je sais pas si tu l'as, sans VB)
racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010
29 août 2004 à 08:57
ok suis calme...
Ben ouai pour ton code suis d'accord que c'est du vbs (sauf 2 ou 3 trucs que je connaissai pas ) mais pourquoi faudrait il que j'installe VB alors?

p.s: les trucs que moi pas connaitre c'est l'objet MSComDlg.CommonDialog de plus sur un autre poste il m'indique comme erreur que cette classe n'as pas de licence d'utilisation????
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 août 2004 à 13:38
oh là ! on reste calme !

j'ai bien vu que ton code etait du VBS , ce que j'ai proposé est du VBS également !
racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010
28 août 2004 à 13:15
et bien ca explique tout , et ca commence a m'enerver car presque tout les scripts que j'ai mis se sont fait allumé avec des commentaire du style "ouais le mien est mieux avec mon ocx " ou encore "pourquoi tu utilise les fso..."

C'est du VBS que je fait et en plus dans la catégorie debutant donc je veut bien prendre des critique mais rester au VBS et je m'en fout completement du VB et des .net ou des ocx et je ne sais pas quoi encore

Et je ne risque pas d'installer VB dans ma machine , vue sa lenteur , Tant a mettre un compilateur je prefere le C,C++, du perl et meme l'assembleur mais pas du VB (merde alors!)

Bref mes scripts en ligne sont la pour rendre des petit service et montrer comment en peut donc faire pour un petit programme sans se casser la tete avec un compilateur
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 août 2004 à 07:31
Il ne fait rien ?

Je crois deviner que tu n'as pas VB installé sur ta machine, ca doit être pour ça.....

ca ouvre une boite de dialogue "Ouvrir" (boite classique) plutot que de faire saisir le nom, tu peux remplacer cette partie par ton ancien InputBox.


Toute la partie "Conversion" s'effectue là :

Dim Tmp
Buffer = IFile.ReadAll
Tmp = Split ( Buffer , vbLf )
Buffer = Join ( Tmp , VbCrLf )
OFile.Write Buffer
racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010
26 août 2004 à 17:10
Correction:
-retrait d'un fso (desolé)
-prise en compte des noms de fichier comportant
plusieurs "."
-inscription de la dernierre ligne dans le source

Voila! sinon renfield je ne comprend pas ce que fait ton script concretement (que dalle qu'on je l'execute) si tu peut expliquer davantage . merci.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 août 2004 à 23:08
1 - Il Faut saisir le nom du fichier
2 - La dernière ligne n'est pas placée dans le fichier source
3 - Si le nom du fichier d'origine comporte un '.' , ce qui suit est l'extension !
4 - Tu créés inutilement 2 objets FSO !!
5 - Le but n'est pas d'effacer quelque caractère spécial non interpreté ! le systeme DOS utiliser Chr ( 13 ) + Chr ( 10 ) contrairement au systèmes de type Unix....
6 - Il est inconcevable de vouloir lire les caractères un par un !!!!

voila un code un peu amélioré :


Dim IFile_Path
IFile_Path = ShowOpen ( )

If IFile_Path <> "" Then
Dim IFile, OFile, OFile_Path
Dim i, Buffer, FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Set IFile = FSO.OpenTextFile(IFile_Path, 1)

For i = Len ( IFile_Path ) To 0 Step -1
If Mid ( IFile_Path , i , 1 ) = "." Then Exit For
Next
OFile_Path = Left ( IFile_Path , i ) & "clean.txt"

Set OFile = FSO.CreateTextFile(OFile_Path,2,True)

Dim Tmp
'# Il est possible de le lire en Streaming
Buffer = IFile.ReadAll
Tmp = Split ( Buffer , vbLf )
Buffer = Join ( Tmp , VbCrLf )
OFile.Write Buffer

Set RegEx = Nothing

IFile.Close()
OFile.Close()
Set WS = CreateObject("WScript.Shell")
ws.Run OFile_Path
MsgBox "Conversion Terminee" , 64
End If

Public Function ShowOpen()
Dim oCDlg
Dim sFile
Const OFN_HIDEREADONLY = &H4
Const OFN_CREATEPROMPT = &H2000
Const OFN_EXPLORER = &H80000
Const OFN_LONGNAMES = &H200000
Set oCDlg = CreateObject("MSComDlg.CommonDialog")
sFile = String(260, Chr(0))
With oCDlg
.Flags = OFN_EXPLORER Or OFN_LONGNAMES Or OFN_CREATEPROMPT Or OFN_HIDEREADONLY
.MaxFileSize = 260
.Filter = "All Files (*.*)|*.*"
.ShowOpen
ShowOpen = .FileName
End With
Set oCDlg = nothing
End Function
racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010
24 août 2004 à 17:21
obligé de faire du caractere par caractere car le but est d'effacer les caracteres spéciaux non interprété
bon je vous met un zip avec le script et un fichier .htm pris au hasard dans mon dossier temporaire qui justement est mal mis en forme ouvre le avec notepad et tu verra la seule guele qu'il a, ensuite passe le a mon script et tu verra la difference aprés le traitement!

pour devsurf , c'est du vbscript, tu n'a besoin que de window pour le faire marcher , tu copie le source avec notepad et tu renomme l'extension "nom-fichier.vbs"

voila
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 août 2004 à 14:30
Il est complètement inconcevable d'utiliser un tel script : tu lit ton fichier caractère par caractère !!! ce n'est pas ce qu'il y a de plus rapide....
devsurf Messages postés 148 Date d'inscription dimanche 13 octobre 2002 Statut Membre Dernière intervention 13 novembre 2008
23 août 2004 à 13:59
Ca ne marche pas pour moi
Peut on avoir un zip avec toutes les references associées?
Je suis en VB6 et w2000

Merci
racattac13 Messages postés 62 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 14 février 2010
23 août 2004 à 12:00
parce que c'est un petit travail sur les fichiers.
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
23 août 2004 à 00:22
pourquoi tout le monde utilise les FSO ?

c'est depassé et lent :(
Rejoignez-nous