IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Tabulation dans un fichier texte


Sujet :

VBScript

  1. #21
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    J'ai oublié ce que faisait ces deux fonctions, des alignement en début et fin de string ?
    Exactement

    Voir leur utilisation avec VBS (elle est simple).

  2. #22
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Voir leur utilisation avec VBS (elle est simple).
    justement, j'attends de voir !

  3. #23
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Ainsi (en direct de VBS), alors :

    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."
    C'est en anglais, je sais ...

    Mais le fonctionnement est exactement le même que pour l'utilisation de Lset avec VB6

    Bonne continuation...

  4. #24
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    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

    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 ... )

  5. #25
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    @ucfoutu : bon, pas de réponse, dois-je en déduire que tu as chaussé tes lunettes ou appris à lire :



    je te laisse le soin de lire la fin de la page

  6. #26
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Par défaut Tabulation de texte
    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

  7. #27
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par phberanger Voir le message
    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
    ben pas moi

    bon w-e

  8. #28
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #29
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    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.

Discussions similaires

  1. [IML] Tabulation dans un fichier texte
    Par stefsas dans le forum SAS IML
    Réponses: 5
    Dernier message: 06/05/2008, 14h13
  2. Detecter les tabulations dans un fichier texte
    Par Benji01 dans le forum VBA Access
    Réponses: 0
    Dernier message: 18/04/2008, 16h23
  3. detécter une tabulation dans un fichier texte
    Par john123 dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2007, 11h14
  4. [TP7] Insérer dans une tabulation dans un fichier texte
    Par astyan dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 05/08/2006, 14h58
  5. [VBA-E]Remplacement virgules par tabulation dans un fichier texte
    Par Mlezen dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/05/2006, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo