Tabulation dans un fichier texte
Bonjour à tous,
Suite à mon post d'hier (réglé, merci à CED 600 pour le lien), je récupère don un fichier texte avec tous les softs installés, par ex:
Mozilla Firefox (2.0.0.11) Version: 2.0.0.11 (fr)
Mozilla Thunderbird (2.0.0.9) Version: 2.0.0.9 (fr)
Adobe Reader 8.1.1 - Français Version: 8.1.1
je voudrais savoir si il est possible de tabuler le fichier afin d'obtenir:
Code:
1 2 3 4
|
Mozilla Firefox (2.0.0.11) Version: 2.0.0.11 (fr)
Mozilla Thunderbird (2.0.0.9) Version: 2.0.0.9 (fr)
Adobe Reader 8.1.1 - Français Version: 8.1.1 |
j'ai essayé avec des vbTab, sans succès.
Merci par avance
Philippe
Tabulation dans un fichier texte
Mozilla Firefox (2.0.0.11) Version: 2.0.0.11 (fr)
Mozilla Thunderbird (2.0.0.9) Version: 2.0.0.9 (fr)
Adobe Reader 8.1.1 - Français Version: 8.1.1
En fait, j'aimerai obtenir des zones alignées, par exemple réserver xx caractères pour le nom du soft (qques soit la longueur de la chaine), et yy caractères pour la version
Philippe
Tabulation dans un fichier texte
J'ai modifié le 1er post de phberanger (sous réserve que j'ai bien compris ce qu'il veut obtenir )
Pas de problème, c'est bien ce que j'aimerai obtenir. Par contre "balise code", je ne connais pas, pas vu de trace dans Script56.CHM
Encore merci
Tabulation dans un fichier texte
donc le script: j'ouvre mon fichier texte, qui provient d'un autre script qui récupère les entrées uninstall dans la bdr ), et je trie le fichier alphabétiquement (d'après un script récupéré sur le web:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| 'Tri du fichier par ordre alphabétique
Const adVarChar = 200
Const MaxCharacters = 255
Const ForReading = 1
Const ForWriting = 2
Set DataList = CreateObject("ADOR.Recordset")
DataList.Fields.Append "SoftWare", adVarChar, MaxCharacters
DataList.Open
Set objFile = objFSO.OpenTextFile("C:\Temp\Soft\SoftWare.txt", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
DataList.AddNew
DataList("SoftWare") = strLine
DataList.Update
Loop
objFile.Close
DataList.Sort = "SoftWare"
DataList.MoveFirst
Do Until DataList.EOF
strText = strText & DataList.Fields.Item("SoftWare") & vbCrLf
DataList.MoveNext
Loop
Set objFile = objFSO.OpenTextFile("C:\Temp\Soft\SoftWare.txt", ForWriting)
objFile.WriteLine strText
objFile.Close
et j'obtiens, par ex
Adobe Flash Player 9 ActiveX Version: 9
Adobe Reader 8.1.1 - Français Version: 8.1.1
Adobe Reader Japanese Fonts Version: 7.00.000
Apple Software Update Version: 2.0.0.21
Archiveur WinRAR Version:
Broadcom Advanced Control Suite 2 Version: 7.58.01
Broadcom Advanced Control Suite 2 Version: 7.58.01
Broadcom ASF Management Applications Version: 5.08.01
Broadcom ASF Management Applications Version: 5.08.01 |
donc rien n'est aligné...
Merci
Tabulation dans un fichier texte
je fais ça de suite,
merci
Tabulation dans un fichier texte
Qui va piano.... je suis en train de voir la commande intSTR pour récupérer la position de Version, j'aurai peut-être terminé lundi :oops:
Tabulation dans un fichier texte
Bonjour à tous et ttes,
Bon, suite et fin de ma laborieuse mise en page.
Pour résumé, il y a surement plus simple, car un peu de code redondant,mais le résultat étant au rendez-vous....
- j'ai donc un fichier texte avec mes valeurs uninstall de la BDR que j'ouvre en lecture, constitué de la sorte et non tabulé:
Correctif Windows XP - KB834707 Version: 20040929.110854
Correctif Windows XP - KB873333 Version: 20050114.005213
PDFCreator Version: 0.9.2
Mozilla Firefox (2.0.0.11) Version: 2.0.0.11 (fr)
Mozilla Thunderbird (2.0.0.9) Version: 2.0.0.9 (fr
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| 'lecture de chaque ligne afin de récupérer la string la plus longue
Set objFile = objFSO.OpenTextFile("C:\Temp\mon_fichier.txt", ForReading)
'Calcul de la plus grande chaine soft
LEN_STRING_SOFT_MAX = 1
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
'recherche de la position de Version
POSITION_VERSION = Instr(strLine, "Version")
'recherche de la string soft
POSITION_VERSION = POSITION_VERSION - 2
STRING_SOFT = Left(strLine,POSITION_VERSION)
'et de la longueur de la zone soft
LEN_STRING_SOFT = Len(Left(strLine,POSITION_VERSION))
'mémorisation de la plus grande longueur de la string soft
If LEN_STRING_SOFT > LEN_STRING_SOFT_MAX Then
LEN_STRING_SOFT_MAX = LEN_STRING_SOFT + 5
End If
Loop
Set objFile = objFSO.OpenTextFile("C:\Temp\mon_fichier.txt", ForReading)
Do Until objFile.AtEndOfStream
strLine = objFile.ReadLine
'recherche de la string soft
POSITION_VERSION = Instr(strLine, "Version")
'et de la longueur de la zone soft
LEN_STRING_SOFT = Len(Left(strLine,POSITION_VERSION))
'comparaison de chaque longueur de la chaine soft pour rajouter les espaces
If LEN_STRING_SOFT < LEN_STRING_SOFT_MAX Then
SPACE_TO_ADD = LEN_STRING_SOFT_MAX - LEN_STRING_SOF
End If
strLine = Left(strLine,POSITION_VERSION -2) & Space(SPACE_TO_ADD) & Mid(strLine,POSITION_VERSION |
et écriture dans le fichier final.
A noter que ça fait 30 mn que je cherche, car l'affichage est correct à l'écran via les wscript.echo, mais que ce n'était pas le cas dans le fichier de sortie, ouvert via notepad++. Et si j'ouvre mon fichier avec ce bon vieux wordpad, c'est bon. Il suffit de mettre langage sur ms-dos style dans notepad++ et c'est bon.
Encore merci à tous
Philippe