ExactementCitation:
J'ai oublié ce que faisait ces deux fonctions, des alignement en début et fin de string ?
Voir leur utilisation avec VBS (elle est simple).
Version imprimable
ExactementCitation:
J'ai oublié ce que faisait ces deux fonctions, des alignement en début et fin de string ?
Voir leur utilisation avec VBS (elle est simple).
Ainsi (en direct de VBS), alors :
C'est en anglais, je sais ...Citation:
LSet
LSet is used to copy a variable of one user-defined type to a variable of another user-defined type. When a variable is copied with the LSet command, it is left-aligned. The syntax of the LSet statement is listed next.
LSet <Variable> = <ValueOfVariable>
If the length of <Variable> is longer than that of <ValueOfVariable>, after copying <ValueOfVariable> to <Variable> the remaining space will be filled in with white spaces. In the like manner, if the length of <Variable> is less than that of <ValueOfVariable>, <ValueOfVariable> will be truncated to fit in the space allocated for <Variable>. For example, if <Variable> can hold only four characters, and <ValueOfVariable> contains the string "ABCDEFG", after it is copied to <Variable> with the LSet command, <Variable> will have the value "ABCD."
Mais le fonctionnement est exactement le même que pour l'utilisation de Lset avec VB6
Bonne continuation...
Arrête de nous assimiler à des coui** s de première !!
Je connais Lset et Rset en VB6, et tu ne penses pas que j'ai essayé avant de te répondre !!!
sauf ....que vbscript râle :evilred:
Alors fais-moi voir un exemple concret (avec du code) fonctionnant en VBScript ! (si c'est le cas, je te ferai des excuses publiques)
j'attends ... (sereinement ... :D)
@ucfoutu : bon, pas de réponse, dois-je en déduire que tu as chaussé tes lunettes ou appris à lire :
http://thierryaim.developpez.com/images/vbs1.png
je te laisse le soin de lire la fin de la page :mouarf:
ok, je vais essayer le script de ThierryAIM, pour l'instant je suis parti sur les Instr split mid et j'avoue que par moment, étant novice, ces #\!*&ù! de commandes me prennent la tête. Ceci dit, si j'édite mon fichier avec notepad++,
, et que j'affiche tous les caracteres, je constante qu'il y a des zones avec des tabulations differentes. On verra ça lundi
Merci et bon WE
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
et écriture dans le fichier final.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
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
pour notepad++ c'est normal, plus de fonctionnalité, donc faut souvent choisir son langage pour avoir l'affichage voulu.
Pour le code cela me parait pas mal. Je pense que quelque soit la solution utilisée, tu es obligé de passer par deux boucles.
Ou sinon faudrait voir avec les expressions régulières s'il est possible d'en construire une qui repère comme motif ta plus longue chaine de soft, mais enfin je ne pense pas que cela soit possible.