Page 1 sur 1

Aider un étourdi :-)

Publié : sam. 31/juil./2004 14:26
par gansta93
Bonjour,

Je voudrais faire un programme pour un potte, qui voudrait avoir son IP praite à être donnée... XP... plus de winipcfg à paremment
Mais le problème, c dans mes structures conditionnelles, il me manque une cloture de structure, mais je ne la trouve pas.

Code : Tout sélectionner

If InitNetwork()
compteur=0
ExamineIPAddresses()
Repeat
ip$=ip$+IPString(NextIPAddress())+#crlf
compteur=compteur+1
Untilip$="0.0.0.0"
compteur=compteur-1
ip$=Left(ip$,Len(ip$)-9)
If compteur=1
reponse=MessageRequester("Donne-moi mon IP","Votre IP est:"+#crlf+ip$+"Voulez-vous le copier dans votre Presse-Papier?",#mb_yesno|#mb_iconquestion)
If reponse=#idyes
SetClipboardText(Left(ip$,Len(ip$)-2))
EndIf
ElseIf compteur>1
reponse=MessageRequester("Donne-moi mon IP","Vos IP sont:"+#crlf+ip$+"Voulez-vous le copier dans votre Presse-Papier?",#mb_yesno|#mb_iconquestion)
If reponse=#idyes
SetClipboardText(Left(ip$,Len(ip$)-2))
EndIf
Else
MessageRequester("Erreur","Aucune adresse IP disponible.",#mb_ok|#mb_iconstop)
EndIf
Else
MessageRequester("Erreur","Impossible d'initialiser le réseau.",#mb_ok|#mb_iconstop)
EndIf
End
Si quelqu'un trouve, qu'il me dise où est ma faute svp... comprand pas pk ça ne marche pas il ne me samble n'avoir rien oublié.

Publié : sam. 31/juil./2004 14:34
par Heis Spiter
Pour XP, il y a ipconfig.

Code : Tout sélectionner

If InitNetwork() 
  compteur=0 
  ExamineIPAddresses() 
  Repeat 
    ip$=ip$+IPString(NextIPAddress())+#crlf 
    compteur=compteur+1 
    Untilip$="0.0.0.0" 
    compteur=compteur-1 
    ip$=Left(ip$,Len(ip$)-9) 
    If compteur=1 
      reponse=MessageRequester("Donne-moi mon IP","Votre IP est:"+#crlf+ip$+"Voulez-vous le copier dans votre Presse-Papier?",#mb_yesno|#mb_iconquestion) 
      If reponse=#idyes 
        SetClipboardText(Left(ip$,Len(ip$)-2)) 
      EndIf 
    ElseIf compteur>1 
      reponse=MessageRequester("Donne-moi mon IP","Vos IP sont:"+#crlf+ip$+"Voulez-vous le copier dans votre Presse-Papier?",#mb_yesno|#mb_iconquestion) 
      If reponse=#idyes 
        SetClipboardText(Left(ip$,Len(ip$)-2)) 
      EndIf 
    Else 
      MessageRequester("Erreur","Aucune adresse IP disponible.",#mb_ok|#mb_iconstop) 
      fin = 1
    EndIf 
  Until fin
Else 
  MessageRequester("Erreur","Impossible d'initialiser le réseau.",#mb_ok|#mb_iconstop) 
EndIf 
End 
Tu avais oublié le until de ta boucle repeat. Je l'ai mis qu'elle se termine quand la varaible fin existe. Et celle-ci est créée si il n'y a plus d'IPs.

Publié : sam. 31/juil./2004 15:41
par gansta93
Arf... j'avais collé Until et ip$
mais je ne pert pas une IP en procèdant comme je le fait?

Publié : sam. 31/juil./2004 15:49
par gansta93
Quelqu'un a-t-il quelque chose à reprocher à ce code?

Code : Tout sélectionner

If InitNetwork()
compteur=0
ExamineIPAddresses()
Repeat
ip$=ip$+IPString(NextIPAddress())+#crlf
compteur=compteur+1
Until Right(ip$,9)="0.0.0.0"+#crlf
compteur=compteur-1
ip$=Left(ip$,Len(ip$)-9)
If compteur=1
reponse=MessageRequester("Donne-moi mon IP","Votre IP est:"+#crlf+ip$+"Voulez-vous la copier dans votre Presse-Papier?",#mb_yesno|#mb_iconquestion)
If reponse=#idyes
SetClipboardText(Left(ip$,Len(ip$)-2))
EndIf
ElseIf compteur>1
reponse=MessageRequester("Donne-moi mon IP","Vos IP sont:"+#crlf+ip$+"Voulez-vous les copiers dans votre Presse-Papier?",#mb_yesno|#mb_iconquestion)
If reponse=#idyes
SetClipboardText(Left(ip$,Len(ip$)-2))
EndIf
Else
MessageRequester("Erreur","Aucune adresse IP disponible.",#mb_ok|#mb_iconstop)
EndIf
Else
MessageRequester("Erreur","Impossible d'initialiser le réseau.",#mb_ok|#mb_iconstop)
EndIf
End
Une amélioration, un problème? Le truc que je me demandais c'est si j'avais bien toutes les IP disponibles s'il y en aurait plusieur... déjà je ne voi pas dans quel(s) cas on pourait avoir plusieurs IP.
Si quelqu'un peut m'éclairer... ça serait sympa et n'oubliez pas, si quelqu'un qui a plusieurs IP l'essais et qu'il n'a pas toutes ses IP, qu'il me dise ce que je peux corriger et comment svp.

Publié : sam. 31/juil./2004 17:55
par julien
NextIPAddress() te renvoie l'adresse IP suivante, quand y'en à plus ça retourne une valeur nul (ou rien)

Tu peux avoir plusieur IP sur ton PC

L'ip de ton FAI avec Ton modem

L'ip de ta carte Réseau

Si tu as plusieurs carte réseau, tu auras autant d'adresse IP que de carte....

Tu peux aussi avoir 2 connexions Internet relié sur le même PC (pas la même ligne)
.....

Publié : sam. 31/juil./2004 21:46
par Dr. Dri
gansta93 a écrit :Quelqu'un a-t-il quelque chose à reprocher à ce code?
pas indenté, ca donne pas envie de se plonger dedans

Dri

Publié : sam. 31/juil./2004 22:32
par Aranoth
heureusement que le logiciel du Soldat Inconnu est là, Alt+1 et hop !

Publié : sam. 31/juil./2004 22:37
par Backup
avec Japbe tu fait Ctrl+a pour tout selectionner puis Ctrl+tab pour mettre en forme :D

même que si tu fait une copie d'un listing du forum dans Japbe y a rien a faire; le code est mis en forme tous seul !! :D j'adore cet editeur !!
:D

et en plus on peut replier n'importe quel partie de code

comme ça ::

Code : Tout sélectionner

;{ la partie qui suit va pouvoir se replier

print "toto"
goto ailleurs
rem programme tres complexe !!

;}     : ceci est la fin de la partie que l'on veut pouvoir plier !!

ps : Merci Comtois ! :D

Publié : dim. 01/août/2004 9:43
par gansta93
S'il ne vous faut que des mises en formes, :-)...
Je posterais ça.

Publié : dim. 01/août/2004 10:55
par gansta93
Voici un code que j'ai mis en forme dirrectemant avec PBSyntaxe, je la trouve pas très indentée...

Code : Tout sélectionner

If InitNetwork()
  compteur = 0
  ExamineIPAddresses()
  Repeat
    ip$ = ip$ + IPString(NextIPAddress()) + #crlf
    compteur = compteur + 1
  Until Right(ip$, 9) = "0.0.0.0" + #crlf
  compteur = compteur - 1
  ip$ = Left(ip$, Len(ip$) - 9)
  If compteur = 1
    reponse = MessageRequester("Donne-moi mon IP", "Votre IP est:" + #crlf + ip$ + "Voulez-vous la copier dans votre Presse-Papier?", #mb_yesno | #mb_iconquestion)
    If reponse = #idyes
      SetClipboardText(Left(ip$, Len(ip$) - 2))
    EndIf
  ElseIf compteur > 1
    reponse = MessageRequester("Donne-moi mon IP", "Vos IP sont:" + #crlf + ip$ + "Voulez-vous les copiers dans votre Presse-Papier?", #mb_yesno | #mb_iconquestion)
    If reponse = #idyes
      SetClipboardText(Left(ip$, Len(ip$) - 2))
    EndIf
  Else
    MessageRequester("Erreur", "Aucune adresse IP disponible.", #mb_ok | #mb_iconstop)
  EndIf
Else
  MessageRequester("Erreur", "Impossible d'initialiser le réseau.", #mb_ok | #mb_iconstop)
EndIf
End
C'est mieu? autre chose à reprocher?

Publié : mar. 03/août/2004 6:56
par brossden
Bonjour

La constante #crlf n'est pas défini dans ton code :

Code : Tout sélectionner


#crlf.s=Chr(13)+Chr(10)

If InitNetwork() 
  compteur = 0 
  ExamineIPAddresses() 
  Repeat 
    ip$ = ip$ + IPString(NextIPAddress()) + #crlf 
    compteur = compteur + 1 
  Until Right(ip$, 9) = "0.0.0.0" + #crlf 
  compteur = compteur - 1 
  ip$ = Left(ip$, Len(ip$) - 9) 
  If compteur = 1 
    reponse = MessageRequester("Donne-moi mon IP", "Votre IP est:" + #crlf + ip$ + "Voulez-vous la copier dans votre Presse-Papier?", #mb_yesno | #mb_iconquestion) 
    If reponse = #idyes 
      SetClipboardText(Left(ip$, Len(ip$) - 2)) 
    EndIf 
  ElseIf compteur > 1 
    reponse = MessageRequester("Donne-moi mon IP", "Vos IP sont:" + #crlf + ip$ + "Voulez-vous les copiers dans votre Presse-Papier?", #mb_yesno | #mb_iconquestion) 
    If reponse = #idyes 
      SetClipboardText(Left(ip$, Len(ip$) - 2)) 
    EndIf 
  Else 
    MessageRequester("Erreur", "Aucune adresse IP disponible.", #mb_ok | #mb_iconstop) 
  EndIf 
Else 
  MessageRequester("Erreur", "Impossible d'initialiser le réseau.", #mb_ok | #mb_iconstop) 
EndIf 
End