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

Shell et commandes POSIX Discussion :

[SCRIPT UNIX] : Boucler sur plusieurs erreurs dans un fichier


Sujet :

Shell et commandes POSIX

  1. #21
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    D'accord.

    Si tu avais pris le temps de comprendre un minimum la commande, tu aurais vu qu'elle comprenait un nombre avant le libellé... ce qui manifestement, n'est pas le cas tout le temps.

    Enlève le nombre et ça marchera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/xdi.GenericProcess/{=;s/.*#//p}' fichier
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  2. #22
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    D'accord j'avais tout enlever en essayant autre chose mais je n'avais pas pensé a laisse derrière le s/ le .*# excusez moi ..
    Cela fonctionne très bien merci beaucoup pour votre aide.

    Je vais vous posé une dernière question et après je ne vous embêterais plus.
    Dans la commande que vous venez de me donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sed -n '/xdi.GenericProcess/{=;s/.*#//p}' ResEDI_2051-CronParametrage.log
    pouvez vous m'expliquer comment comprendre le sed s'il vous plait, je regarde sur internet mais j'avoue que j'ai du mal a tout comprendre ...

  3. #23
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    sed travaille par défaut ligne par ligne.
    On répond toujours à la question "quand?" et la question "quoi?"

    "Quand?" peut-être une expression régulière, un numéro de ligne, une adresse (dernière ligne par exemple), etc...
    "Quoi?" est la commande à exécuter: s (substitution), p (affichage), d (destruction), h (hold:mise en mémoire), g (get: récupérer la mémoire), = (écrire le numéro de ligne), etc...
    À toi de te former avec n'importe quel memento sed sur internet.

    S'il n'y a pas de condition "quand?", c'est que toutes les lignes sont concernées par la commande.
    Les accolades peuvent regrouper des commandes sous une même condition.

    Décortiquons la commande suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].[0-9][0-9]:[0-9][0-9]:[0-9][0-9].*#ERROR#.*#[1-9][0-9]*/!d;=;s/.*#\([1-9][0-9]*\) /\1\n/' error.dat
    // expression régulière. Différent de la chaîne brute car elle couvre plusieurs chaînes possibles.
    /./ expression régulière avec n'importe quel caractère.
    /.*/ expression régulière avec n'importe quelle quantité de n'importe quel caractère. L'étoile s'applique à l'objet juste avant.
    /^/ début de ligne
    /^a/ ligne commençant par a minuscule.
    /^[aA]/ ligne commençant par a majuscule ou minuscule. Les crochets indique une liste dans laquelle on peut prendre n'importe quel caractère une seule fois.
    /^[aA]*/ ligne commençant par une quantité indéterminée (même 0) de a majuscule ou minuscule.
    /^[0123456789]/ ligne commençant par un chiffre décimal.
    /^[0-9]/ ligne commençant par un chiffre décimal. En fait, n'importe quel caractère entre 0 et 9 ... c'est pareil.
    /^[a-z]/ ligne commençant par une minuscule
    /^[A-Z]/ ligne commençant par une majuscule
    /^[a-zA-Z]/ ligne commençant par une lettre
    /^[0-9a-zA-Z]/ ligne commençant par un caractère alphanumérique.
    /^[^aA]/ ligne commençant par tout sauf un a majuscule ou minuscule. Le circonflexe au début des crochets inverse la liste.
    /^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/ ligne commençant par 4 chiffres, un tiret, 2 chiffres, un tiret, 2 chiffres, n'importe quel caractère, 2 chiffres, 2 points, 2 chiffres, 2 points, 2 chiffres (Ohhhhh ! Exactement comme l'horodatage du fichier de log !.... année mois jour heure minute seconde)

    Attention! L'étoile est gourmande. Elle s'étend au maximum. Si j'écris /blabla.*ERROR/ alors que la ligne est bloblo blabla kr:gjnd:fgjnsdgl: ,qerkgn ERROR ERGFJDFG ERROR dfgdf la correspondance ira jusqu'au second ERROR et engloutira le premier. Voilà pourquoi, pour repérer des balises html dans un fichier, on écrit /<[^>]*>/ plutôt que /<.*>/.

    /pattern/ ligne contenant pattern
    /pattern/! ligne ne contenant pas pattern.
    /pattern/!d détruire les ligne ne contenant pas pattern
    [1-9][0-9]* nombre ne commençant pas par 0.

    s/toto/tata/ remplace toto par tata 1 fois (Version à éviter en cas de fichier et chemin de fichier avec des / )
    s/toto/tata/g remplace toto par tata dans toute la ligne. (Version à éviter en cas de fichier et chemin de fichier avec des / )
    s|toto|tata|g remplace toto par tata dans toute la ligne.
    s@toto@tata@g remplace toto par tata dans toute la ligne.
    s,toto,tata,g remplace toto par tata dans toute la ligne.
    s/toto/tata/p remplacer une fois et afficher.
    s/\(ta\)\(va\)\(za\)/\3\2\1/ remplace tavaza par zavata.

    Pour conclure,
    • on élimine les lignes dont on ne reconnaît pas l'horodatage en début de ligne, et celles sans le mot ERROR entre croisillons, et celles qui n'ont pas un nombre non nul derrière un croisillon après tout ça.
    • On affiche le numéro de ligne
    • On remplace tout le début de ligne que l'on a reconnu jusqu'au nombre non nul, par ce nombre suivi d'un retour à la ligne. Le début de la ligne disparaît et la fin est intacte.
    • On obtient donc 3 lignes:
      1. Le numéro de ligne traitée
      2. Le code erreur
      3. Le libellé anciennement en fin de ligne

    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #24
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    Ah oui d'accord je cerne mieux maintenant le script !

    J'ai une dernière question, est ce qu'il est possible l'affichage ?
    je m'explique le script me ressort :

    1. Le numéro de ligne traitée
    2. Le code erreur
    3. Le libellé anciennement en fin de ligne

    Et j'aimerais améliorer cette affichage pour le rendre plus lisible est ce possible ?

    Merci beaucoup pour toutes tes explications, cela devient beaucoup plus limpide pour moi et je vous remercie

  5. #25
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Et j'aimerais améliorer cette affichage pour le rendre plus lisible est ce possible ?
    Oui. Que n'arrives-tu pas à faire ?

    Il ne faut pas confondre un rendu ré-exploitable et un affichage agréable.
    • Si tu veux un contenu réutilisable, fabrique un fichier csv (fichier texte organisé en colonnes avec un séparateur au choix: ; ou , ou | )
    • Si tu veux un bel affichage, peut-être faudra-t-il passer par un pipe, awk et la fonction sprintf qui utilise un formatage précis ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #26
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    Si tu veux un bel affichage, peut-être faudra-t-il passer par un pipe, awk et la fonction sprintf qui utilise un formatage précis ?
    Ce serait plus pour avoir un bel affichage en faite, pour que se soit facile a lire et facile a trouver l'erreur par exemple pour la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].[0-9][0-9]:[0-9][0-9]:[0-9][0-9].*#ERROR#.*#[1-9][0-9]*/{=;s/.*#\([1-9][0-9]*\) /\1\n/p}' ResEDI_2051-CronParametrage.log
    ça nous renvois ceci :

    202
    1
    objet(s) en erreur


    Et j'aimerais si c'est possible que ça me renvois ceci par exemple :

    Ligne 202
    1 objet(s) en erreur


    ou pour cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/DefaultIntegrateErrorHandler/{=;s/.*#//p}' ResEDI_2051-CronParametrage.log
    ça nous renvois cela a la base :

    280
    - erreur lors du decodage du XML pour obtenir une entité

    Et j'aimerais avoir ceci :

    Erreur ligne 280 ( erreur lors du decodage du XML pour obtenir une entité)

    Merci pour votre aide encore une fois

  7. #27
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Il faut faire un retraitement.

    Tu ne demandes pas la même chose dans les cas, même si c'est la même technique (regroupement de lignes et suppression des retours à la ligne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].[0-9][0-9]:[0-9][0-9]:[0-9][0-9].*#ERROR#.*#[1-9][0-9]*/{=;s/.*#\([1-9][0-9]*\) /\1\n/p}' ResEDI_2051-CronParametrage.log | sed 'N;N;s/^/Erreur ligne /;s/\n/ /g'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ cat errorres.txt 
    202
    1
    objet(s) en erreur
    203
    5
    objet(s) en erreur
    220
    100
    objet(s) en erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ sed 'N;N;s/^/Erreur ligne /;s/\n/ /g' errorres.txt 
    Erreur ligne 202 1 objet(s) en erreur
    Erreur ligne 203 5 objet(s) en erreur
    Erreur ligne 220 100 objet(s) en erreur
    Pour la deuxième question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/DefaultIntegrateErrorHandler/{=;s/.*#//p}' ResEDI_2051-CronParametrage.log | sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ cat errorres2.txt
    280
    - erreur lors du decodage du XML pour obtenir une entité
    190
    - erreur lors du decodage du PDF pour obtenir une entité
    380
    - erreur lors du decodage du JPG pour obtenir une entité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g' errorres2.txt 
    Erreur ligne 280 (erreur lors du decodage du XML pour obtenir une entité)
    Erreur ligne 190 (erreur lors du decodage du PDF pour obtenir une entité)
    Erreur ligne 380 (erreur lors du decodage du JPG pour obtenir une entité)

    Pour les nouveautés:
    N ajoute une ligne à l'espace de travail de sed.
    ? est comme *. C'est un indicateur de quantité qui s'applique à l'objet précédent. \? signifie 0 ou 1. Alors que * signifie 0 ou +. Et \+ signifie 1 ou +.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #28
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    A oui c'est vraiment très puissant le regex !
    J'en revient pas de tout ce qu'on peux faire avec ça ... !

    Je vais essayer de faire la dernière ligne de commande que j'ai a faire pour bien comprendre !
    Petite question pour tout mettre ceci dans un même fichier sans écraser je dois faire comme vous me l'aviez dis plus au dessus c'est bien ca ?

    Merci beaucoup pour votre aide !
    Je vous en suis énormément reconnaissant ...

  9. #29
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Petite question pour tout mettre ceci dans un même fichier sans écraser je dois faire comme vous me l'aviez dis plus au dessus c'est bien ca ?
    Attention quand même. L'avantage est qu'on ne perd rien. Mais l'inconvénient est que cela nécessite de la maintenance car le fichier ne se vide jamais.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #30
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    Le but de tout ça est de voir quand il y a des erreurs dans la log.
    Je mets donc les erreurs dans le fichier SURVLOG, et lorsque nous corrigeons ces erreurs nous remontons à OK la SURVLOG.
    Un script va tourner sur la SURVLOG et nous envois un mail quand elle est différente de OK

    Voici mon script formé comme je le voulais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    REPRACINE="/opt/ResUrgences"
    PRINTLOG="$REPRACINE/ResEDI_2051-CronParametrage.log"
    #PRINTLOG="$REPRACINE/Parametrage1.log"
    SURVLOG="$REPRACINE/SURVLOG"
     
    sed -n '/^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].[0-9][0-9]:[0-9][0-9]:[0-9][0-9].*#ERROR#.*#[1-9][0-9]*/{=;s/.*#\([1-9][0-9]*\) /\1\n/p}' ResEDI_2051-CronParametrage.log | sed 'N;N;s/^/Erreur ligne /;s/\n/ /g' 
     
    sed -n '/DefaultIntegrateErrorHandler/{=;s/.*#//p}' ResEDI_2051-CronParametrage.log | sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g'  
    sed -n '/xdi.GenericProcess/{=;s/.*#//p}' ResEDI_2051-CronParametrage.log | sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g'
    Et j'aimerais comprendre d'avantage la requête a la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g'
    Je comprend bien ce que vous m'avez dis

    Pour les nouveautés:
    N ajoute une ligne à l'espace de travail de sed.
    ? est comme *. C'est un indicateur de quantité qui s'applique à l'objet précédent. \? signifie 0 ou 1. Alors que * signifie 0 ou +. Et \+ signifie 1 ou +.
    Mais j'aimerais avoir plus de renseignements si c'est possible, car n'ayant jamais utilisé le regex auparavant j'ai peur de vite oublier ou ne plus savoir comment comprendre mon script, j'ai regarder sur internet mais la plus pars du temps dans les exemples, les variables sont détachés elle ne sont pas les unes après les autres comme dans mon script a moi ..

    Quand vous dites :
    commande >> fichier
    Qu'est ce que la commande ?
    Mon fichier sera $SURVLOG si je ne me trompe pas mais la commande je ne vois pas du tout ce que ca peux être =/
    Cordialement et merci encore

  11. #31
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g'
    Bon. Tu vois 2 points-virgule, donc tu vois 3 commandes.

    • N: on rajoute une ligne à l'espace de travail. Mais avec un \n (retour à la ligne) entre les lignes.
    • La première substitution remplace le début de ligne (concrètement rien, c'est juste pour insérer en début de ligne) par "Erreur ligne ".
    • La seconde substitution est là pour supprimer les retours à la ligne et mettre des parenthèses.
      Le problème est qu'en entrée, il y a un tiret et un espace disgracieux, surtout si on mets des parenthèses. Donc on les supprime aussi.


    La difficulté est peut-être la référence-arrière dont j'ai déjà parlé avec "zavata".
    \1 se réfère au premier groupe identifié. \2 au deuxième groupe. \3 etc...
    Comment reconnaître le groupe ? Il est entre parenthèses. Mais comme il faut différencier les caractères normaux des caractères interprétés, on échappe par la contre-oblique (anti-slash).

    \( début de groupe
    ( parenthèse
    \) fin de groupe
    ) parenthèse
    \? 0 ou 1
    ? point d'interrogation
    * 0 ou +
    \* étoile
    \+ 1 ou +
    + plus
    \n retour à la ligne
    n n
    [liste] un caractère d'une liste
    \[liste\] le mot "liste" entre crochets
    . un caractère
    \. un point
    / probablement la fin du bloc dans s///g ou une oblique dans s@@@g
    \/ une oblique (slash)
    \ (aucun sens seule)
    \\ une contre oblique

    On reprend:
    Dans le texte, on ne garde pas les \n, ni le tiret qui suit (s'il existe), ni l'espace qui suit (s'il existe), mais tous le reste, on le reprend et le mets entre parenthèses (des vraies, celles-là)

    NB: Dans \(toto\)\? C'est toto qui est en quantité 0 ou 1 car c'est bien l'objet précédent le point d'interrogation grâce aux parenthèses.

    Qu'est ce que la commande ?
    N'importe quelle commande:
    find, echo, sed, for, while, test, awk, cut, ./mon_script.bash, etc

    Mon fichier sera $SURVLOG si je ne me trompe pas mais la commande je ne vois pas du tout ce que ca peux être =/
    Manifestement, c'est ton script, la commande ...
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  12. #32
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    C'est tout bon, tout fonctionne !!
    Merci beaucoup pour votre aide Flodelarab, j'ai compris l'utilisation de regex grâce a vos nombreuses explications et j'ai réussi a finir mon script et en mieux !!

  13. #33
    Nouveau membre du Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Octobre 2014
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 108
    Points : 30
    Points
    30
    Par défaut
    Bonjour Flodelarab,

    je me permets de vous déranger une toute dernière fois,

    pour l'expression régulière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -n '/DefaultIntegrateErrorHandler/{=;s/.*#//p}' $PRINTLOG | sed 'N;s/^/Erreur ligne /;s/\n-\? \?\(.*\)/ (\1)/g'
    Je dois commenter ce que fais le script ce qui me pose problème et le petit bout de code : {=;s/.*#//p}'
    Je n'arrive pas a expliquer ce qu'il fais exactement.
    Je sais que le s indique un espace vide et que le .* indique qu'il il y Absolument n'importe quel charactère avec 0 ou plusieurs répétitions, et le /p permet d'afficher si je ne me trompe pas.

    Merci d'avance

  14. #34
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 238
    Points : 13 443
    Points
    13 443
    Par défaut
    s = substitution.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [PPT-2007] Boucler sur une slide dans un diaporama de plusieurs slides
    Par lezoizo dans le forum Powerpoint
    Réponses: 4
    Dernier message: 13/09/2019, 16h01
  2. écrire sur plusieurs lignes dans un fichier
    Par kenny49 dans le forum Langage
    Réponses: 3
    Dernier message: 06/04/2007, 12h47
  3. [GD] Redimension d'image - plusieurs erreurs dans mon script
    Par Henry9 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/02/2007, 11h58
  4. Lister sur plusieurs colonnes dans état
    Par armagued dans le forum Access
    Réponses: 3
    Dernier message: 30/10/2005, 22h21
  5. Réponses: 2
    Dernier message: 21/09/2005, 13h18

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