récuperer une ligne CMD

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

récuperer une ligne CMD

Message par venom »

bonjour,

voila aujourd'hui j'ai décidé de passer par purebasic pour envoyer une commande a l'invité de commende.

bon sa c'est fait mais la ou je blque c'est comment récupérer une ligne parmi toutes les lignes :?

pour mieu comprendre si je tape ping 127.0.0.1 sa me renvoie sa :

Code : Tout sélectionner

Envoi d'une requête 'ping' sur 127.0.0.1 avec 32 octets de données:

Réponse de 127.0.0.1: octets=32 temps<1ms TTL=128

Réponse de 127.0.0.1: octets=32 temps<1ms TTL=128

Réponse de 127.0.0.1: octets=32 temps<1ms TTL=128

Réponse de 127.0.0.1: octets=32 temps<1ms TTL=128

Statistiques Ping pour 127.0.0.1:

    Paquets: envoyés = 4, reçus = 4, perdus = 0 (perte 0%),

Durée approximative des boucles en millisecondes :

    Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
moi je souhaite récupérer la ligne :

Code : Tout sélectionner

 Paquets: envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
donc c'est la que je coince :?

voici mon code en purebasic qui permet de pinger :

Code : Tout sélectionner

EnableExplicit

Define ping.l = RunProgram("ping", "127.0.0.1", "", #PB_Program_Open|#PB_Program_Read)
Define Output.s = ""
If ping
  While ProgramRunning(ping)
    Output + ReadProgramString(ping) + Chr(13)
  Wend
  CloseProgram(ping)
  Output + Chr(13) + Chr(13)
EndIf
MessageRequester("ping", Output)
d'avance merci





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Comme ça peut-être

Code : Tout sélectionner

EnableExplicit 
Define ping.l = RunProgram("ping", "127.0.0.1", "", #PB_Program_Open|#PB_Program_Read) 
Define Output.s = "" 
If ping 
  While ProgramRunning(ping) 
    Output = ReadProgramString(ping) 
    If FindString(Output,"Paq",1)
     Break 
    EndIf 
  Wend 
  CloseProgram(ping) 
  MessageRequester("ping", Output) 
EndIf
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Code : Tout sélectionner

If FindString(Output,"Paq",1) 
c'est pas mal sa merci c'est cool.





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Salut,

Sinon, tu fais comment pour corriger les accents envoyés par La commande de windows sur OS en français ?

Par ailleurs, si tu cherche une String Paq, est-ce que tu ne risques pas d'avoir un Windows Tcheque ou Polonais qui te renverrait une autre ligne que celle que tu veux.

Bon, c'est une question windows ... est-ce qu'on a moyen de forcer une commande windows à renvoyer des informations dans une langue imposée, distincte de celle de l'os installé ?
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

la solution multilangue serait de chercher la ligne qui a 3 caractères "=" :roll:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
KrisJNT
Messages : 110
Inscription : ven. 31/oct./2008 16:51

Message par KrisJNT »

Je ne sais pas si j'ai bien compris, mais il existe un moyen de récupérer le contenu de la console dans un fichier. Exemple :

ipconfig /all >result.txt

Voila, ca pourra peut-être t'aider ! :wink:
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

kerkael a écrit :Sinon, tu fais comment pour corriger les accents envoyés par La commande de windows sur OS en français ?
Windows utilise le code ANSI, sauf la console qui utilise le code ASCII (comme le MS-DOS !).
Pour passer de l'un à l'autre il existe les fonctions API CharToOem_() et OemToChar_().

Sinon, il y a des codes pour faire du PING ici :
http://www.purebasic.fr/english/viewtopic.php?t=36390
http://www.purebasic.fr/english/viewtopic.php?t=18616
http://www.purebasic.fr/english/viewtopic.php?t=3717
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Super, et merci pour la différence entre ASCII et ANSI.
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

gnozal > aucun rapport, l'ANSI (l'institut) a "crée" l'ASCII (la norme).
le problème vient des versions étendues (caractères supérieurs à 127) car la console de windows utilise "windows-1252" alors que le reste est généralement en iso-8859-* (1 ou 15 pour la France)
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@Minirop

Salut, quelle(s) fonction(s) ou quel algo utiliser dans ce cas ?

Ollivier
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

minirop a écrit :gnozal > aucun rapport, l'ANSI (l'institut) a "crée" l'ASCII (la norme).
Merci, je sais que ANSI = 'American National Standards Institute', cependant je maintiens mon affirmation.
Par ailleurs, l'ASCII a été défini par l'ASA, un ancètre de l'ANSI, pour les TTY (télétypes) et pas pour l'informatique ...

On parle de set de caractères ANSI par opposition au set de caractères ASCII. Les premiers 127 caractères sont identiques, ce qui explique que les anglo-saxons n'ont pas de problèmes. Par contre, les caractères 'étendus' comme les caractères accentués placés après 127 ont un code différent en ASCII et en ANSI.

Fais une recherche sur ANSI Character Set ...

Références :
MSDN : http://msdn.microsoft.com/en-us/library ... S.85).aspx
The ANSI Character Set : www.microsoft.com/typography/unicode/cs.htm
Wikipedia : "The term 'ANSI code page' is also used to refer to code pages used in Windows, like Windows-1252" ; http://en.wikipedia.org/wiki/Windows-1252
etc ...
Répondre