Rechercher du texte entre deux séparateurs

Résolu
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 - 23 août 2006 à 01:02
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 - 23 août 2006 à 13:33
Bonjr à tous !
Je ne sais pas si c'est le bon endroit pour poster ce message, mais bon... Voilà mon problème :

Je crée actuellement une application capable de lancer et d'arrêter certaines applications suivant si mon ordinateur portable fonctionne sur secteur ou sur batterie. Pour le lancement des applications, pas de problème... Une simple commande Shell suffit. Mais c'est autre choses avec l'arrêt... J'utilise la commande Shell pour "tuer" l'application avec "taskkill.exe" renommé en "killapp.exe", inclue dans mon projet. Mais j'ai besoin du nom du processus de l'application, et non pas du chemin d'accès à cette dernière !

Par exemple, si je lance MSN Messenger à partir de ce chemin : "C:\Program Files\MSN Messenger\msnmsgr.exe /bakground", il me faut récupérer uniquement "msnmsgr.exe" pour le fermer.
Il faudrait pouvoir enlever les options de démarrage en donnant comme séparateur ".exe" puis stocker la chaine de caractères obtenue dans une variable (on devrait donc obtenir "C:\Program Files\MSN Messenger\msnmsgr.exe").
Ensuite, il faudrait garder uniquement la partie comprise entre la fin et le premier signe "" en partant de la droite (ou le dernier en partant de la gauche).

Je sais que ce n'est pas la première fois que ce genre de question est posé ici, mais ça fait plusieurs heures que je cherche (sur Google et VBFrance) et je ne trouve rien... Avez-vous des idées à me proposer ?

Merci de votre aide, bonne nuit... [sleepy]

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2006 à 01:59
salut,

je t'ai fait la fonction ici
en VB6...

++
PCPT    [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
3
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
23 août 2006 à 13:33
C'est bon... Après avoir mis en surbrillance "Left" et avoir fait F1, j'ai tout compris... Merci l'aide de VS2005 et MSDN Library...

la fonction Left n'est pas reconnue, en effet... Pour s'en servir, il suffit de remplacer "Left" par "Microsoft.VisualBasic.Left".
Et c'est la même chose pour "Right"... Voilà !

Merci beaucoup !

 
3
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
23 août 2006 à 11:31
Merci pour la fonction. J'ai essayé de la mettre dans mon programme 'en faisant une mise à jour automatique du code vers VB.Net avec Visual Studio 2005, mais ca ne marche  pas... Voici le code traduit en VB.Net :
Mais le problème, c'est que Visual Studio 2005 ne reconnait pas "Left et "Right"... (en rouge sur ce copier-coller du code)
Private

Function GetExeNameFromShortCutPath(
ByVal sShortCut
As
String,
Optional
ByRef bExt
As
Boolean =
True)
As
String

        ' sShortCut cible (chemin)

        ' bExt retourner l'extension ?        GetExeNameFromShortCutPath = vbNullString

        sShortCut = Trim(LCase(sShortCut))

        ' on traite SI c'est un exe

        Dim iPos
As
Short        iPos = InStrRev(sShortCut,

".exe")

        If iPos > 0
Then

                ' on enlève la commande qui peut suivre

                If Len(sShortCut) > iPos + 3
Then sShortCut = Left(sShortCut, iPos + 3)

               ' extension?

               If
Not (bExt)
Then sShortCut = Left(sShortCut, Len(sShortCut) - 4)

               ' dernier slash                iPos = InStrRev(sShortCut,

"")                GetExeNameFromShortCutPath = IIf(iPos = 0, sShortCut, Right(sShortCut, Len(sShortCut) - iPos))

        End
If

End
Function
0
remilafouine Messages postés 32 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 11 juin 2007 1
23 août 2006 à 13:20
Pour informations complémentaires, voici les descriptions des erreurs :
Pour Left : " 'Public property Left() As Integer' has no parameters and its return type cannot be indexed. "
Pour Right : " 'Public ReadOnly Property Right() As Integer' has no parameters and its return type cannot be indexed. "

Voilà.

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2006 à 13:22
c'est la seule erreur?
les fonctions left et right ne sont pas contenues dans le framework?

genre String.Left ou sShortCut = sShortCut.Left(sShortCut, iPos + 3)
?
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Rejoignez-nous