IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

convertion de caractères speciaux


Sujet :

C

  1. #1
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut convertion de caractères speciaux
    Bonjour,

    J'ai codé un programme pour changer l'adresse ip de mes différents réseau locaux.
    J'ai du combiné pour cela le .c avec du MSDOS.
    En fait avec gets je récupère le nom du réseau local à modifier
    Par exemple "connexion au réseau local 2".
    Cependant quand je transmets le nom du réseau et l'adresse ip à la commande MSDOS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "connexion aux réseau local 2" 192.168.1.20 255.255.255.0
    Le "é" est changé en ","

    Quand je fais un printf de la commande j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    netsh interface ip set address "connexion aux r,seau local 2" 192.168.1.20 255.255.255.0
    Et évidement cela ne marche pas car ce réseau là n'existe !

    Ma question est donc comment faire pour corriger ce problème ?

    Merci d'avance !

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Utilise CharToOem()
    Cordialement.

  3. #3
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Voici le code, merci pour l'aide d'avant mais je n'arrive pas à utiliser cette fonction ! si une âme charitable pouvait m'aider, ce ne serait pas de refus !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #include <stdio.h>
    #include <stdlib.h>
     
    int configuration_de_la_cmd();
    int affichage_des_reseaux_locaux();
    int modification_ip();
     
     
     
     
    int main()
    {
     
        configuration_de_la_cmd();
        affichage_des_reseaux_locaux();
        modification_ip();  
        getch();
     
    }
     
     
     
     
     
    int configuration_de_la_cmd()
     
    {
     
        system("@echo off");
        system("title=%username%");
        system("mode con cols=83 lines=35");
        system("color 4f");
        printf("\n");
     
    }
     
     
     
     
    int affichage_des_reseaux_locaux()
    {
     
        printf(" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n");
        printf(" |                              VOS RESEAUX LOCAUX                              +\n");
        printf(" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n");
        system("netsh interface ip show address");   
        printf(" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n");
        printf("\n");
        printf("\n");
        printf("\n");
     
    }
     
     
     
     
    int modification_ip()
     
    {
     
         char nom_du_reseau[5000];
         char ip[16];
         char netsh[1024];
         int val;
     
           printf(" +------------------------------------------------------------------------------+\n");
           printf(" |                           MODFICATION DE L'ADRESSE IP                        |\n");
           printf(" +------------------------------------------------------------------------------+\n");
           printf(" |\n");
           printf(" | [1] Entrez le nom du r\x82seau a modifier : "); 
           gets(nom_du_reseau);
           printf(" |\n");
           printf(" | [2] Entrez la nouvelle adresse ip : ");
           scanf("%15s",&ip);
           printf(" |\n");
           printf(" +------------------------------------------------------------------------------+\n\n");
     
     
           sprintf(netsh,"netsh interface ip set address \"%s\" static %15s 255.255.255.0",nom_du_reseau,ip);
     
         val=system(netsh);
         return val;
     
    }

    Merci d'avance

  4. #4
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    J'ai ce code, mais que je décommente ou pas CharToOem() ça ne change rien, j'avoue ne pas comprendre, d'un autre coté moi j'aurai utilisé les apis windows directement mais je n'ai pas le temps de les chercher je n'ai mis que celle que je connaissais, faudrais voir avec Médinoc...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
     
    void configuration_de_la_cmd (void);
    void affichage_des_reseaux_locaux (void);
    int modification_ip (void);
     
    int main (void)
    {
       configuration_de_la_cmd ();
       affichage_des_reseaux_locaux ();
       modification_ip ();
       getchar ();
       return 0;
    }
     
    void configuration_de_la_cmd (void)
    {
       COORD coord = { 83, 35 };
       char username[50] = "";
       DWORD size = sizeof username;
       HANDLE console = GetStdHandle (STD_OUTPUT_HANDLE);
       GetUserNameA (username, &size);
       SetConsoleTitleA (username);
       SetConsoleScreenBufferSize (console, coord);
       SetConsoleTextAttribute (console, 79);
    }
     
    void affichage_des_reseaux_locaux (void)
    {
       puts
          (" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
           "~~~~~~~~~~+\n"
           " |                              VOS RESEAUX LOCAUX                    "
           "          +\n"
           " +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
           "~~~~~~~~~~+\n");
       system ("netsh interface ip show address");
       puts
          (" +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
           "~~~~~~~~~~+\n\n\n");
    }
     
    int modification_ip (void)
    {
       char nom_du_reseau[50];
       char ip[16];
       char netsh[1024];
       char oem[1024];
     
       printf
          (" +--------------------------------------------------------------------"
           "----------+\n"
           " |                           MODFICATION DE L'ADRESSE IP              "
           "          |\n"
           " +--------------------------------------------------------------------"
           "----------+\n"
           " |\n" " | [1] Entrez le nom du r\x82seau a modifier : ");
       scanf_s ("%49[^\n]", nom_du_reseau, 50);
       fflush (stdin);
     
       printf (" |\n" " | [2] Entrez la nouvelle adresse ip : ");
       scanf_s ("%15s", ip, 16);
       fflush (stdin);
     
       puts (" |\n"
             " +------------------------------------------------------------------"
             "------------+\n");
     
       sprintf_s
          (netsh, sizeof netsh,
           "netsh interface ip set address \"%s\" static %15s 255.255.255.0",
           nom_du_reseau, ip);
    #if 0
       CharToOemA (netsh, netsh);
    #endif
       return system (netsh);
    }

  5. #5
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    ok merci mais où est ce que tu êux me conseiller un bon tuto sur les api windows ?

    merci d'avance

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Bas tu as le tuto de CGI qui est pas trop mal mais qui est très orienté "programmation graphique" mais je ne pense pas que tu trouveras un tuto en français sur la gestion des réseaux locaux avec l'api windows.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion caractères speciaux
    Par Halukard dans le forum Access
    Réponses: 3
    Dernier message: 19/02/2007, 11h46
  2. [C# 2.0]Problème de caractères speciaux
    Par Tatanne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2006, 02h51
  3. Probleme de lecture d'un fichier avec caractères speciaux
    Par bygui dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 26/06/2006, 09h35
  4. Caractéres speciaux
    Par cerede2000 dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2006, 15h11
  5. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo