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 :

Equivalent StringOfChar en C#


Sujet :

C#

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut Equivalent StringOfChar en C#
    Salut à tout le monde;

    Je réécris un prog delphi en C# et je voudrais une méthode similaire à
    'StringOfChar' en C#.Je pensais à 'copyto' mais ça demande du code en plus.Mon code actuel,sachant qu'on ne connait pas ch mais que c'est un nombre en char:

    //ajoute n espaces dans une chaine.
    m.position:=m.position + StringOfChar(' ', strtoint(ch));

    Bien sûr je pourrais le faire moi-même avec une fonction qui prend ch en
    argument et renvoit la chaine après une boucle mais si ça existe c'est que c'est fait pour

    Merci.

  2. #2
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par Fabiani
    Bien sûr je pourrais le faire moi-même avec une fonction qui prend ch en
    argument et renvoit la chaine après une boucle mais si ça existe c'est que c'est fait pour
    Oui essaye ca voila un exemple en VB.NET (a convertir en C#) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function Test(Caractere as String, Len as Integer) as String
        Dim Result as string = ""
        For i as Integer = 1 to Len 
            Result += Caractere
        Next
     
        Return Result 'retourne le resultat
    End Function
    Traduction en C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private string Test(string Caractere, int Len) {
            string Result = "";
            for (int i = 1; (i <= Len); i++) {
                Result = (Result + Caractere);
            }
            return Result;
            // retourne le resultat 
        }
    Bonne chance !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut
    Merci Aspic, mais c'est exactement ma fonction actuelle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          private string DonneNChar(int n) 
          {
              string ChainedeNChar="";
              for (int x = 0; x < n; x++)
                  ChainedeNChar += " ";
     
              return ChainedeNChar;
          }
    Merci quand même.

  4. #4
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Peut-être ai-je mal compris, mais si tu souhaite initialiser une chaîne de caractère avec un certain nombre de caractères, tu peux utiliser le constructeur String(Char caractère, Int32 nombre d'occurences).

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par BCmDev
    Peut-être ai-je mal compris, mais si tu souhaite initialiser une chaîne de caractère avec un certain nombre de caractères, tu peux utiliser le constructeur String(Char caractère, Int32 nombre d'occurences).
    Bah oui je suis bete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Dim var As New String(CChar("g"), 5)
    Traduction C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string var = new string(((char)("g")), 5);
    Merci de penser aux balises CODE !!
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut
    Merci à tous.Je suis arrivé à ça:

    string var;

    m.Position += var = new string((' '), int.Parse(Convert.ToString(ch)));

    Je sais pas si c'est le plus simple mais ça me convient.
    Merci

  7. #7
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Ca m'a l'air super compliqué ! Quel est le type de ch ? Pourquoi le transformer en chaîne puis en entier ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut
    ch est déclaré en char et représente toujours un chiffre (lecture d'une longue chaine) dans cette partie du code.Donc il me faut un int pour le constructeur que j'obtient avec 'parse' qui demande dans toutes ses surcharges des string en 1er paramêtre donc 'convert'.
    Je débute en C# donc il y a sûremement plus simple mais en une ligne de code à la place d'un appel de fonction, ça ma va.Si tu as un code plus compact je suis preneur.

    Salutations.

  9. #9
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Ok. Bien qu'un nombre de caractères contenu dans un variable de type Char soit bizarre, il faut bien le convertir...

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 257
    Par défaut
    Je sais mais je m'explique.La chaine est une position aux échecs (rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -) donc il y a des lettres (pièces,trait,roque) et des chiffres (cases vides).Je convertit pour mon prog les cases vides en espaces pour obtenir une chaine de 64 caratères (l'échiquier) au final.

    Salutations.

  11. #11
    Membre chevronné
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Par défaut
    Ok, merci pour les infos. C'est sympa de connaître les tenants et les aboutissants des problèmes posés.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2002, 09h12
  2. equivalent à explode?
    Par djridou dans le forum Langage
    Réponses: 3
    Dernier message: 28/08/2002, 11h01
  3. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

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