Retirer suite de cvaracètere dans une chaine

Bonjour,
j'aimerai savoir comment on peut retirer une suite de caractère dans une chaine je vous explique:
imaginons un petit script tout simple
y=blabladocblabla.doc
j'aimerai pouvoir retirer .doc à la fin de y
comment dois-je m'y prendre?

Merci si vous povuez m'apporter une réponse et bonne chance! :D
Configuration: Windows XP
Opera 9.24

6 réponses

  1. Modérateur
    Salut,

    il faut oublié Visual Basic ;-)

    Sous Gnu/Linux il y a des commandes qui facilite les taches

    par exemple
    root@debian:~/trash# y=blabladocblabla.doc
    root@debian:~/trash# res=$(basename $y .doc)
    root@debian:~/trash# echo $y
    blabladocblabla.doc
    root@debian:~/trash# echo $res
    blabladocblabla
    root@debian:~/trash#
    1
    1. utilise les commandes right et/ou left, combinées avec la longueur de ta chaine

      y=blablablab.doc
      z=left(y,longueur-4) - par exemple - devrait prendre tous les caractères à gauche de ta chaine (donc depuis le début), - les 4 derniers .doc.

      A adapter en fonction du langage que tu utilises...

      :-)
      0
      1. Webmaster
        Pour completer lami20j, il est aussi possible de passer par une substitution en une ligne sous bash:
        res=${y/.doc/}

        Attention toute fois, ca ne fonctionnera que dans le cas ou tu veux supprimer l'extension de fichier ".doc" pour des fichiers qui ne contiennent pas de ".doc" autre part dans le nom ;-)
        0
        1. Modérateur
          Salut,

          Tu peux aussi utiliser l'expansion des paramètres (qui dans ce cas là se fiche pas mal de l'extension) :
          $ y=blabladocblabla.doc
          $ echo ${y%.*}
          blabladocblabla
          ;-))
          0
          1. Ca marche super merci vraiment beaucoup :)
            0