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 :

Convertir tolower - toupper.


Sujet :

C

  1. #1
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut Convertir tolower - toupper.
    Bonjour

    J'essaie de converir un texte en minuscul s'il est en majuscul, et vice versa, mais mon code ne convertit qu'en un seul sens, en fonction si c'est toupper ou tolower qui vient en premier.

    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
    #include <stdio.h>
    #include <stdlib.h>
    main(){
    char text[80];
    char texti[80];
    int i, cpt;
     
    for(i=0; (text[i]=getchar())!='\n'; i++)
    cpt=i;
     
    for(i=0; i<=cpt; i++)
    if(tolower(text[i]))
    putchar(toupper(text[i]));
    else if (toupper(text[i]))
    putchar(tolower(text[i]));
    system("PAUSE");
     
    }

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salux,

    Que voulais tu faire avec "if(tolower(text[i]))" ?
    ça n'a pas de sens :p
    Tu voulais je suppose savoir si c'était une minuscule.. dans ce cas, la condition suivante devrait suffir : "text[i] >= 'a' && text[i] <= 'z'"

    Aussi, il faut voir si tu veux gérer les caractères accentués latins.. (et par la meme occasion voir dans quel encodage est ton texte d'entrée)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    RETURN VALUES
    If the argument is an upper-case letter, the tolower() function returns
    the corresponding lower-case letter if there is one; otherwise the argu-
    ment is returned unchanged.
    tolower te retournera toujours quelque chose de vrai au sens du if (sauf si tu lui passes 0 mais ce n'est pas une lettre).

    Il faut que tu regardes si ton caractère est compris entre 'a' et 'z' (ou entre 'A' et 'Z').

  4. #4
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    ..humm, pourtant pour vérifier si une entrée est de type char ou pas on peut recourir à la formulation suivante:

    if(isalpha(text[i])
    ....

    Si je ne m'abuse, dans ce cas le test foncionne non?

  5. #5
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Gruik Voir le message
    Tu voulais je suppose savoir si c'était une minuscule.. dans ce cas, la condition suivante devrait suffir : "text[i] >= 'a' && text[i] <= 'z'"
    Pas terrible. Et si dans le charset utilise, les lettres ne dont pas contigue

    Citation Envoyé par Linu6 Voir le message
    ..humm, pourtant pour vérifier si une entrée est de type char ou pas on peut recourir à la formulation suivante:

    if(isalpha(text[i])
    ....

    Si je ne m'abuse, dans ce cas le test foncionne non?
    Cette fonction indique si il s'agit d'un caractere ou non, pas si il s'agit d'une majuscule ou d'une minuscule.

    Pour connaitre la casse d'une lettre il existe les fonctions isupper et islower

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par gl Voir le message
    Pas terrible. Et si dans le charset utilise, les lettres ne dont pas contigue
    Oui mais plus bas je déclarais vaguement que ça dependait de l'encodage
    Et puis c'est plutot rare les encodages qui sont pas à base d'ascii

    Pour connaitre la casse d'une lettre il existe les fonctions isupper et islower
    Jles avais oubliées celles là tiens
    Du coup, si on veut gérer les caractères accentués yaura qu'a changer la locale

  7. #7
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    Citation Envoyé par gl Voir le message
    Pour connaitre la casse d'une lettre il existe les fonctions isupper et islower

    J'étais sur qu'il y avait une methode testant la case à base de upper ~ lower.., mais j'avais oubliais la formulation exacte!

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    En ce qui concerne la saisie, affecter la valeur retournée par getchar() à une variable de type char n'est pas conseillé. Sinon mes commentaires sont dans le code (je suppose que tu n'a pas de caractères spéciaux, e.g. accentués, à traîter):

    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
    #include <stdio.h>
    #include <stdlib.h>
    /* -TC- tolower(), toupper(, islower() et isupper() sont déclarées dans le
       fichier d'en-tête standard ctype.h
     */
    #include <ctype.h>
     
    /* -TC- ATTENTION: la fonction main retourne un entier de type int, toujours! */
    int main(void)
    {
        /* -TC- Personnellement, j'initialise toujours un tampon texte de cette
           manière
        */
        char text[80] = {0};
        /* -TC- Attention, getchar() retourne un entier de type int et non un char */
        int c;
        int i;
        int cpt = 0;
     
        /* -TC- affichage de l'invite et vidange du tampon de sortie */
        printf("Entrez un mot: ");
        fflush(stdout);
     
        /* -TC- Saisie caractère par caractère */
        for (i = 0; i < sizeof text - 1 && (c = getchar()) != '\n' && c != EOF; i++)
        {
            text[i] = c;
            cpt++;
        }
        /* -TC- Si c est différent de '\n' ou EOF, c'est que le tampon text est plein.
           On s'empresse d'afficher un message d'avertissement et de le vider le 
           tampon de l'entrée standard.
        */
        if (c != '\n' && c != EOF)
        {
            fprintf(stderr, "Buffer full, your entry has been truncated...\n");
     
            while ((c = getchar()) != '\n' && c != EOF)
            {
                continue;
            }
        }
     
        /* -TC- Attention, ton code présente des erreurs à ce niveau. Ta condition
           d'arrêt est fausse. Par ailleurs, if (tolower(text[i])) est toujours
           vraie à moins que text[i] soit le caractère nul. Je pense que tu voulais
           utiliser islower() et isupper() */
        for (i = 0; i < cpt; i++)
        {
            if (islower(text[i]))
            {
                putchar(toupper(text[i]));
            }
            else
            {
                putchar(tolower(text[i]));
            }
        }
     
        return EXIT_SUCCESS;
     
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Linu6 Voir le message

    J'étais sur qu'il y avait une methode testant la case à base de upper ~ lower.., mais j'avais oubliais la formulation exacte!
    D'où l'utilité d'avoir une bonne doc à portée de main...

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    Merci a vous tous

    D'où l'utilité d'avoir une bonne doc à portée de main...
    On n'est pas moins bien servi ici, sans pour autant dépasser les bornes.
    en tout cas, avec tes commentaires j'ai appris bien plus en 1 minute, qu'en un mois avec des "livres de références"


  11. #11
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    En fait dans l'extrait ci-dessous, je ne vois ni l'endroit où on a défini le EOF..ni son utilité. (..mais peut être par inexpérience").

    En quoi se maintenir à un simple "c = getchar()) != '\n' " est il insuffisant?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i = 0; i < sizeof text - 1 && (c = getchar()) != '\n' && c != EOF; i++)

  12. #12
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Linu6 Voir le message
    En fait dans l'extrait ci-dessous, je ne vois ni l'endroit où on a défini le EOF..ni son utilité. (..mais peut être par inexpérience").

    En quoi se maintenir à un simple "c = getchar()) != '\n' " est il insuffisant?
    EOF permet d'indiquer que l'a fin du fichier est atteinte. Ce qui est indispensable si l'entree standard est un fichier et non la console (dans la plupart des shell, le caractere < permet une telle redirection).
    Il est egalement possible depuis une console d'indiquer une fin de fichier (generalement avec les touches Ctrl + D si je ne me trompe pas)

  13. #13
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /* -TC- Personnellement, j'initialise toujours un tampon texte de cette
       manière
    */
    char text[80] = {0};
    Personnellement, s'il s'agit d'une chaine de caractere, j'ai une preference pour char text[80] = ""; qui revient strictement au meme et correspond mieux a une vision chaine de caracteres.

  14. #14
    Membre confirmé Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Par défaut
    je me demande si on a le drot de faire:


  15. #15
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Linu6 Voir le message
    je me demande si on a le drot de faire:

    Cela ne fait aucun sens, NULL est uniquement destiné à être utilisé dans un contexte de pointeur. Donc non, ce n'est pas correct!

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  16. #16
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par gl Voir le message
    EOF permet d'indiquer que l'a fin du fichier est atteinte. Ce qui est indispensable si l'entree standard est un fichier et non la console (dans la plupart des shell, le caractere < permet une telle redirection).
    Il est egalement possible depuis une console d'indiquer une fin de fichier (generalement avec les touches Ctrl + D si je ne me trompe pas)
    Tu ne te trompes pas! C'est Ctrl + Z sous Windows et Ctrl + D sous unixoïde.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par gl Voir le message
    Personnellement, s'il s'agit d'une chaine de caractere, j'ai une preference pour char text[80] = ""; qui revient strictement au meme et correspond mieux a une vision chaine de caracteres.
    C'est vrai que c'est plus clair, je vais changer mon style.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #18
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Salut,
    je suis novice en C aussi en programmation , et je me suis poser quelques questions sur cette ligne de code proposer par ' Thierry Chappuis ' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (i = 0; i < sizeof text - 1 && (c = getchar()) != '\n' && c != EOF; i++)
    -> est-ce que le -1 a été inclus pour ne pas remplir la dernière case de la chaine ,celle ou il faut mettre un ' \0 ' si tel est le cas ou est ce que l'on introduit le '\0' dans ce code , j'aurais penser faire ceci directe après la sortie de la boucle : text[i]='\0';

    ->aussi j'aurais jamais penser a mettre un sizeof mais plutôt : 80 puisque text[80], donc qu'elle est l'avantage ?

    désolé si mes question sont un peu flou ou bebete ....!!

  19. #19
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut

    Citation Envoyé par ssmario2 Voir le message
    -> est-ce que le -1 a été inclus pour ne pas remplir la dernière case de la chaine ,celle ou il faut mettre un ' \0 ' si tel est le cas ou est ce que l'on introduit le '\0' dans ce code , j'aurais penser faire ceci directe après la sortie de la boucle : text[i]='\0';
    C'est vrai que dans cet algo, on se sert de "cpt" lorsqu'on retraite les caractères de "text", donc on a pas besoin de laisser la place pour le '\0'.. mais je pense que Thierry prefere systematiquement mettre des chaines valides dans ses tableaux de caractères car ça serait plus évolutif si dans ce meme algo on avait besoin d'utiliser les fonctions du c standard sur les chaines (strlen).
    Si on a pas mis text[i]='\0' à la sortie de la boucle c'est qu'on savait que "text" était remplit avec des '\0' dès son initialisation.

    ->aussi j'aurais jamais penser a mettre un sizeof mais plutôt : 80 puisque text[80], donc qu'elle est l'avantage ?
    Non, justement utiliser sizeof est plus intéressant, c'est plus abstrait, plus proche du sens originel, plus proche de ce qu'on voulait faire.
    Une bonne pratique consiste à ne pas sortir les nombres de son chapeau car ils ont surement un sens particulier, donc en général on passe par des constantes, des tableaux d'infos, des resultats de fonctions/macros ou des opérateurs du langage C comme sizeof.
    Si tu veux un avantage concret, si on augmente la taille du buffer, bein ya pas à changer le "80" partout.

  20. #20
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par ssmario2 Voir le message
    Salut,
    je suis novice en C aussi en programmation , et je me suis poser quelques questions sur cette ligne de code proposer par ' Thierry Chappuis ' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (i = 0; i < sizeof text - 1 && (c = getchar()) != '\n' && c != EOF; i++)
    -> est-ce que le -1 a été inclus pour ne pas remplir la dernière case de la chaine ,celle ou il faut mettre un ' \0 ' si tel est le cas ou est ce que l'on introduit le '\0' dans ce code , j'aurais penser faire ceci directe après la sortie de la boucle : text[i]='\0';
    Ici, on sort de la boucle lorsque i vaut (sizeof text - 1), car la dernière case du tableau de caractères est réservée au caractère nul. Dans le code présenté, toutes les cases du tableau text ont été inialisées à 0 (ou '\0') lors de la déclaration du tableau:
    ou, plus propre, comme l'a justement fait remarquer gl:
    Il n'y a dès lors pas besoin de placer un caractère nul en fin de chaîne de manière explicite à sortie de la boucle (mais rien n'interdit de le faire):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (i = 0; i < sizeof text - 1 && (c = getchar()) != '\n' && c != EOF; i++)
    {
        /* ... */
    }
    text[i] = 0;
    Citation Envoyé par ssmario2 Voir le message
    ->aussi j'aurais jamais penser a mettre un sizeof mais plutôt : 80 puisque text[80], donc qu'elle est l'avantage ?
    L'avantage se situe au niveau de la maintenance. En effet, si un jour tu décides de modifier la taille du tableau de caractères text, tu devras effectuer cette modification partout où tu as codé la valeur de cette taille en dûr dans ton code.

    De manière générale, il est désirable de limiter au maximum l'usage de nombres magiques dans un programme. Ainsi on préfère itérer sur un tableau de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #define TEXT_SIZE 80
     
    char text[TEXT_SIZE] = "Bienvenue sur developpez.com";
    int i;
     
    for (i = 0; i < TEXT_SIZE - 1; ++i)
    {
        /* ... */
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #define ARRAY_SIZE(a) ( sizeof (a)/sizeof *(a))
    char text[80] = "Bienvenue sur developpez.com";
    int i;
     
    for (i = 0; i < ARRAY_SIZE(text) - 1; ++i)
    {
        /* ... */;
    }
    ou encore, comme sizeof(char) vaut 1 par définition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    char text[80] = "Bienvenue sur developpez.com";
    int i;
     
    for (i = 0; i < sizeof text - 1; ++i)
    {
        /* ... */;
    }
    Citation Envoyé par ssmario2 Voir le message
    désolé si mes question sont un peu flou ou bebete ....!!
    Il n'y a pas de problème, ni de questions bête.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Fonction toupper, tolower et to.?
    Par kayvinn dans le forum Débuter
    Réponses: 8
    Dernier message: 23/01/2010, 13h53
  2. Les fonctionalites toUpper, toLower et Capitalize ?
    Par scifire dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 14/04/2006, 17h51
  3. Réponses: 4
    Dernier message: 06/06/2004, 12h07
  4. Réponses: 3
    Dernier message: 02/07/2003, 16h24
  5. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34

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