Accueil > Forum > > > > Je n'y comprend plus rien :-(
Je n'y comprend plus rien :-(
samedi 3 avril 2004 à 04:56:54 |
Je n'y comprend plus rien :-(

ChrOnOs83
|
Slt à ts, tout dabor je suis dsl mais je ne savai pa tro comen resumé mon pb en quelque mot et c pr cela ke je né pa fai un sujet clair. en realité jaimerai reussir a faire un programme qui donne son ip par messagebox. le truc c ke j'ai dabord utilisé la la fonction trouvant l'ip de la source de laigle76 mais j'ai remarqué que chez certaine personne cela donne l'ip de leur carte rezo. bref ensuite je me suis di qu'il valai mieu ke je le fasse avec en metan dans un char* la copi dune sortie d'un ipconif et en cherchan l'ip dans se char *. voici en gro la fonction ki li le fichier txt sapelan findip.txt et se trouvant a la racine du c : char mot[1000] = "\0"; char ipa[20]="\0"; FILE *ipconfig =fopen("c:\\findip.txt","r"); fgets(mot,1000,ipconfig); fclose(ipconfig); char chiffre[] = {'0','1','2','3','4','5','6','7','8','9','.','\0'}; char sous_reseau[] = {'2','5','5','.','2','5','5','.','2','5','5','.','2','5','5','\0'}; int i=0; int j=0; MessageBox (0,mot,"",0); while (1) { i++; j=0; if (mot[i]==sous_reseau[j]) { while (mot[i]==sous_reseau[j]) { j++; i++; test[i] = mot[i]; } if (j>=16) { i = i - (j + 1);
while(1) { i--; if ((mot[i]==chiffre[0])||(mot[i]==chiffre[1])||(mot[i]==chiffre[2])||(mot[i]==chiffre[3])||(mot[i]==chiffre[4])||(mot[i]==chiffre[5])||(mot[i]==chiffre[6])||(mot[i]==chiffre[7])||(mot[i]==chiffre[8])||(mot[i]==chiffre[9])||(mot[i]==chiffre[10])) { while ((mot[i]==chiffre[0])||(mot[i]==chiffre[1])||(mot[i]==chiffre[2])||(mot[i]==chiffre[3])||(mot[i]==chiffre[4])||(mot[i]==chiffre[5])||(mot[i]==chiffre[6])||(mot[i]==chiffre[7])||(mot[i]==chiffre[8])||(mot[i]==chiffre[9])||(mot[i]==chiffre[10])) { i--; } i++; while ((mot[i]==chiffre[0])||(mot[i]==chiffre[1])||(mot[i]==chiffre[2])||(mot[i]==chiffre[3])||(mot[i]==chiffre[4])||(mot[i]==chiffre[5])||(mot[i]==chiffre[6])||(mot[i]==chiffre[7])||(mot[i]==chiffre[8])||(mot[i]==chiffre[9])||(mot[i]==chiffre[10])) { ipa[j] = mot[i]; i++; j++; } } } } } if (i==999) { strcpy(ipa,"non connecté"); break; } } MessageBox (0,ipa,"",0); return(0); }
|
je me doute que se code est sousoptimisé :-) et jen suis dsl pr les puriste mais franchement apré avoir essayé fread, fgetc, et encor plein dotre fonction don je ne me souvien plus seul fgetc passé donc... voici une copi de mon findip.txt : Configuration IP de WindowsCarte Ethernet Connexion au réseau local: Statut du média . . . . . . . . . : Média déconnectéCarte PPP Internet ADSL : Suffixe DNS propre à la connexion : Adresse IP. . . . . . . . . . . . : 62.147.136.101 Masque de sous-réseau . . . . . . : 255.255.255.255 Passerelle par défaut . . . . . . : 62.147.136.101 dailleur a se propos quelque che se bizar se passe. a la base mon findip.txt est bien fai avec des sot de ligne. mais le probleme est qu'il comence par un sot de ligne et si je n"enleve pa se sor de ligne mon fgets(mot,1000,ipconfig) ne passe pas (mot=null). a partir du momen ou je lenleve (avec le notpad) il devien comme la copi ke je vien de vous faire c a d en bordel... sinon se qui decone dans ma source c que le MessageBox (0,mot,"",0) affiche bien le contenu de mon findip.txt mais par contre le MessageBox (0,ipa,"",0) affiche tjr non connecté... bref si quelqu'1 trouve pouquoi c le k je lui en suis deja reconaissant ;-) sinon... jformat.
|
|
lundi 5 avril 2004 à 19:57:50 |
Re : Je n'y comprend plus rien :-(

G0ss3Yn
|
Hello ! J'ai eu un peu la flemme d'étudier ton code.. :D Alors pour t'aider quand même, j'ai programmé l'appli que tu veux, comme ça tu pourras regarder comment le faire de façon simple. J'utilise les fonctions C++ pour l'accés au fichier.... Attention donc. Voilà ! G0ss3Yn... ( Bon coding a tous !)
#include <windows.h> #include <fstream.h> #include <stdlib.h>
INT APIENTRY WinMain( HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nShowCmd ) { char buffer [ 256 ] ; char ip [ 256 ] = "" ; ifstream file ; bool GotIt = false ;
// Ici on met la sortie de ipconfig dans ip.txt system( "ipconfig > \"C:\\ip.txt\"" ) ;
// On ouvre le fichier file.open( "C:\\ip.txt" ) ;
while( file.getline( buffer, 256 ) ) { if( strcmp( buffer, "" ) == 0 ) continue ;
// On cherche la sous-chaine "Adresse IP" if( strstr( buffer, "Adresse IP" ) ) { strcpy( ip, buffer + 44 ) ; continue ; }
// On met '\0' à la fin de la ligne, pour strcmp // compare correctement buffer [ 57 ] = '\0' ;
// Si la ligne contient "255.255.255.255" // alors, le buffer contient l'adresse ip if( strcmp( buffer + 44, "255.255.255.255" ) == 0 ) { GotIt = true ; break ; } }
if( ! GotIt ) strcpy( ip, "Non connecté" ) ; MessageBox( NULL, ip, "Adresse ip", MB_OK | MB_ICONINFORMATION ) ;
file.close( ) ;
return 0 ; }
C'est le bordel, mais si tu fais copier/coller, ça ira ;)
|
|
lundi 5 avril 2004 à 21:01:31 |
Re : Je n'y comprend plus rien :-(

ChrOnOs83
|
merci bcp pr ta reponse G0ss3Yn !!! le pb ke g encor c ke g pa la librairi fstream... chui sur ke mon visual studio merde grave parceke g tro eu de pb avec stistoir de lectur de fichier (tu c pa tt se ke g essayé) enf1 bref g kan meme reecri le code ke javai fai il est plu clair mais sa marche tjr pa... le voici o k ou : test() { char mot[1000] = "\0"; char ipa[20]="\0"; char srezo[20]; FILE *ipconfig =fopen("c:\\findip.txt","r"); fgets(mot,1000,ipconfig); fclose(ipconfig); char chiffre[] = {'0','1','2','3','4','5','6','7','8','9','.','\0'}; char sous_reseau[1000]; int i=0; int j=0; int k=0; MessageBox (0,mot,"",0); strcpy (sous_reseau,"255.255.255.255"); while (i<1000) { i++; while (mot[i]==sous_reseau[j]) { srezo[j]=mot[i]; j++; i++; } if (j>15) { MessageBox(0,srezo,"",0); i = i - 30; j=0; strcpy(srezo,"\0"); srezo[j]=mot[i]; MessageBox(0,srezo,"",0); while(1) { i--; while ((mot[i]==chiffre[0])||(mot[i]==chiffre[1])||(mot[i]==chiffre[2])||(mot[i]==chiffre[3])||(mot[i]==chiffre[4])||(mot[i]==chiffre[5])||(mot[i]==chiffre[6])||(mot[i]==chiffre[7])||(mot[i]==chiffre[8])||(mot[i]==chiffre[9])||(mot[i]==chiffre[10])||(mot[i]==chiffre[11])) { ipa[j] = mot[i]; i--; j++; } k=1; if (j!=0){break;}; } } if (k!=0){break;} } //strcpy(ipa,"non connecté"); MessageBox (0,ipa,"",0); return(0); }
|
|
|
lundi 5 avril 2004 à 23:53:54 |
Re : Je n'y comprend plus rien :-(

G0ss3Yn
|
Ok, ça ne marche pas apparemment parce que tu ne récupère pas toute la sortie dans ton buffer 'mot', mais que la première ligne donc c'est normal... Voici le code à modifier pour que toute la sortie soit dans ton buffer 'mot' :
char buffer [ 256 ] ; char mot [1024] = "\0" ; char ipa [20] = "\0" ; char srezo [20] ;
// On met la sortie de ipconfig dans findip.txt system( "ipconfig > \"C:\\findip.txt\"" ) ;
// On ouvre le fichier FILE *ipconfig = fopen("c:\\findip.txt","r");
// On récupère toute la sortie dans ton buffer ( mot ) while( fgets( buffer,1000,ipconfig ) != NULL ) strcat( mot, buffer ) ;
fclose(ipconfig);
Mais même comme çela ça ne marche pas, ton algorithme doit être certainement faux.... Quoiqu'il en soit, voici le code qui fonctionne, en C cette fois :D
#include <windows.h> #include <stdio.h> #include <stdlib.h>
INT APIENTRY WinMain( HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nShowCmd ) { char buffer [ 256 ] ; char mot [ 1024 ] = "\0" ;
char ip [ 256 ] ; char * tmp ;
bool GotIt = false ;
// On met la sortie de ipconfig dans findip.txt system( "ipconfig > \"C:\\findip.txt\"" ) ;
// On ouvre le fichier FILE *ipconfig = fopen("c:\\findip.txt","r");
// On récupère toute la sortie dans ton buffer ( mot ) while( fgets( buffer, 256,ipconfig ) != NULL ) strcat( mot, buffer ) ;
fclose(ipconfig);
// On cherche le 'token' "\n" tmp = strtok( mot, "\n" ) ;
while( tmp ) {
// On cherche la sous-chaine "Adresse IP" if( strstr( tmp, "Adresse IP" ) ) { strcpy( ip, tmp + 44 ) ;
// On cherche le nouveau token tmp = strtok( NULL, "\n" ) ; continue ; }
// Si la ligne contient "255.255.255.255" // alors, le buffer contient l'adresse ip if( strncmp( tmp + 44, "255.255.255.255", 15 ) == 0 ) { GotIt = true ; break ; }
// On cherche le nouveau token '\n' tmp = strtok( NULL, "\n" ) ; }
if( ! GotIt ) strcpy( ip, "Non connecté" ) ; MessageBox( NULL, ip, "Adresse ip", MB_OK | MB_ICONINFORMATION ) ;
return 0 ;
}
En espérant avoir résolu ton problème.... A plus tard ! :)
G0ss3Yn... ( Bon coding a tous !)
|
|
mardi 6 avril 2004 à 00:51:22 |
Re : Je n'y comprend plus rien :-(

ChrOnOs83
|
Exelent !!! jvien de tester et sa marche nikel franchement merci bcp pr ton aide !! en plus grace a toi g bien compri le fonctionement de fgets et ainsi ke lutilisation de strtok pr rechercher un mot dans un char* (ici un saut de ligne) (enf1 c ske g compri jme plante petetre :-)...) bref merci bcp !!!!!!!!!!! @+ ChrOnOs
|
|
samedi 4 mars 2006 à 02:33:38 |
Re : Je n'y comprend plus rien :-(

gasy72
|
impec mci
crois seulement
|
|
Cette discussion est classée dans : chiffre, mot, txt, ip, char
Répondre à ce message
Sujets en rapport avec ce message
Trie liste de saisit sans passer par une insertion [ par Nexouille ]
Voila je dois a partir d'un fichier prendre toute les ip qui s'y trouve dont on ne connait pas le nombre et je dois compter combien de fois elles appa
ça concerne la lecture et l'ecriture sur un fichier et ... [ par wfish ]
voila mon pb :j'ai fais un ptit prog de traitement de fichier. il sert à mettre certaines infos prises dans un fichier et les mettre dans un autre !!1
Sniffing - raw socket [ par krum ]
J'ai essayé de coder un programme capable de me donner la description de l'en tete IP et TCP des packets que je reçois d'une certaine IP,mais lorsque
Socket -> Ip [ par CyberP ]
Comment obtenir l'adresse ip (sous forme de char* : xxx.xxx.xxx.xxx) à partir d'un objet socket (je ne veut pas d'objet SOCK_ADDR mais une ip en char*
conversion char-->hexadécimal [ par ivdz ]
Bonjour,Est-ce que quelqu'un sait convertir un char en sa valeur hexadécimal ?Voici ce que j'ai essayé :char mot[]="255";int hexa;sscanf(mot
Hachage fermé problème de lecture [ par mcflysupersonic ]
Bonjour je suis nouveau sur le forum est ceci est ma première question donc j'espère que je ne me suis pas trompé d'endroit pour poster.Voilà j'ai un
pb eof en C++ le dernier element est lu 2 fois :( [ par panini21 ]
salut a tousvoila g un prog qui permet de creer une 'bibliotheque de jeux'a savoir :les renseignement du jeu sont le prix, le nom, la descriptiopn et
string [ par ToToL ]
BonjourComme le dit le sujet j'ai un probleme de string ...... ;-)en fait j'ai un char remplit d'une chaine de caractere avec a un endroit de la chain
Connexion ftp puis ecriture dans un fichier txt [ par lombredudragon ]
Voila je me suis fait une fonction ip(); qui recup mon ip et j'aimerais me faire une fonction qui se connecte a un serveur ftp gratuit(genre free tisc
Comparaison avec StrCmp() [ par lcampeur ]
Bonjour, je souhaite effectuer une comparaison, j'ai un programme contenant une structure borne contenant: 1- char NomBorne [20] 2- char IP[16]M
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|