Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1533 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  String => separateur => mise en forme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

String => separateur => mise en forme

n°1369996
korben31
Posté le 18-05-2006 à 20:46:08  profilanswer
 

Bonjour
J'ai ubn string qui conteient les informations de cette forme:
VE451EF4:Nom:Prenom:A450:0122558811:Admin
et j'aimerai avoir dans chaque variable :
 
id=VE451EF4
nom=Nom
Prenom=Prenom
Bureau=A450
tel=0122558811
type=Admin
 
pour pouvoir l'intergré dans un constructeur: CUtilisateur(id,nom....);
mais je ne vois vraiment pas avec quelle commande effectuer cette mise en forme

mood
Publicité
Posté le 18-05-2006 à 20:46:08  profilanswer
 

n°1370029
korben31
Posté le 18-05-2006 à 21:22:40  profilanswer
 

string txt_arg = "" ;
            ArrayList arguments = new ArrayList();
            foreach (char c in login.ToCharArray())
            {
                if (c.CompareTo(':') == 0)
                {
                    arguments.Add(txt_arg);
                    txt_arg = "";
                }
 
                else
                    txt_arg += c;
            }

n°1370138
pikti
I’ve done worse
Posté le 18-05-2006 à 22:27:18  profilanswer
 

ta chaine.Split(':') te donnera un tableau de string

n°1371899
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-05-2006 à 10:01:55  profilanswer
 

Perso, j'utiliserais une struct avec méthode, puisque ça existe en .NET, autant en profiter !
 
Code en .NET 2.0 :
 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace test
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Console.WriteLine("Saisissez, un utilisateur (format d'initialisation) :" );
  11.             string init = Console.ReadLine();
  12.             Personne User = new Personne();
  13.             try
  14.             {
  15.                 User.Fill(init);
  16.                 Console.WriteLine("User créé :" );
  17.                 Console.WriteLine(string.Format("ID     : {0}", User.ID));
  18.                 Console.WriteLine(string.Format("Nom    : {0}", User.Nom));
  19.                 Console.WriteLine(string.Format("Prénom : {0}", User.Prenom));
  20.                 Console.WriteLine(string.Format("Bureau : {0}", User.Bureau));
  21.                 Console.WriteLine(string.Format("Tél    : {0}", User.Tel));
  22.                 Console.WriteLine(string.Format("Type   : {0}", User.Type));
  23.             }
  24.             catch (Exception e)
  25.             {
  26.                 Console.WriteLine(e.Message);
  27.             }
  28.             finally
  29.             {
  30.                 Console.WriteLine();
  31.                 Console.WriteLine("Appuyez sur une touche pour quitter" );
  32.                 Console.Read();
  33.             }
  34.         }
  35.     }
  36.     struct Personne
  37.     {
  38.         public string ID;
  39.         public string Nom;
  40.         public string Prenom;
  41.         public string Bureau;
  42.         public string Tel;
  43.         public string Type;
  44.         public void Fill(string Initialisateur)
  45.         {
  46.             string[] tmpTab = Initialisateur.Split(':');
  47.             if (tmpTab.Length != 6)
  48.             {
  49.                 throw new Exception(string.Format("Erreur d'initialisation : 6 paramètres attendus, {0} trouvé(s).", tmpTab.Length.ToString()));
  50.             }
  51.             this.ID = tmpTab[0];
  52.             this.Nom = tmpTab[1];
  53.             this.Prenom = tmpTab[2];
  54.             this.Bureau = tmpTab[3];
  55.             this.Tel = tmpTab[4];
  56.             this.Type = tmpTab[5];
  57.         }
  58.     }
  59. }


 
Sortie :
 


Saisissez, un utilisateur (format d'initialisation) :
Identifiant:Nom du user:Prénom du user:Bureau du user:Téléphone:Type de user
User créé :
ID     : Identifiant
Nom    : Nom du user
Prénom : Prénom du user
Bureau : Bureau du user
Tél    : Téléphone
Type   : Type de user
 
Appuyez sur une touche pour quitter
 
 
Saisissez, un utilisateur (format d'initialisation) :
blabla
Erreur d'initialisation : 6 paramètres attendus, 1 trouvé(s).
 
Appuyez sur une touche pour quitter

n°1371971
pikti
I’ve done worse
Posté le 22-05-2006 à 11:15:36  profilanswer
 

Arjuna a écrit :


Code :
  1. Console.WriteLine(string.Format("ID     : {0}", User.ID));
  2.                 Console.WriteLine(string.Format("Nom    : {0}", User.Nom));
  3.                 Console.WriteLine(string.Format("Prénom : {0}", User.Prenom));
  4.                 Console.WriteLine(string.Format("Bureau : {0}", User.Bureau));
  5.                 Console.WriteLine(string.Format("Tél    : {0}", User.Tel));
  6.                 Console.WriteLine(string.Format("Type   : {0}", User.Type));
  7. [...]
  8.                 string[] tmpTab = Initialisateur.Split(':');
  9.                 throw new Exception(string.Format("Erreur d'initialisation : 6 paramètres attendus, {0} trouvé(s).", tmpTab.Length.ToString()));




 
http://membres.lycos.fr/pikti92/_img/_gif/capello.gif
juste pour info la méthode Console.WriteLine gère déjà le formatage, inutile d'appeler string.Format tu peux mettre  
"(ta chaine, params[] obj)" ;  
de plus string.Format attendant des objets le "ToString()" de "tmpTab.Length" ne sert donc à rien.
 
Bien sûr cela ne change rien à la solution proposée ;)
(qui utilise bien la méthode Split())


Message édité par pikti le 22-05-2006 à 11:18:18
n°1371981
Arjuna
Aircraft Ident.: F-MBSD
Posté le 22-05-2006 à 11:25:27  profilanswer
 

Ha, tiens, c'est vrai, j'oublie tout le temps que WriteLine supporte déjà le formattage :D
 
Sinon, le "ToString()" sur le Length, je le met pour la sémantique. Je doute que le compilo en fasse cas, et l'intérêt, c'est que quand on lit le code, on n'a pas besoin de consulter la déclaration de String.Format() ou Console.WriteLine() pour savoir ce qu'on fait.
Après tout, une valeur numérique pourrait indiquer le nombre de caractères à écrire...

n°1374926
Frolor
Posté le 25-05-2006 à 15:00:26  profilanswer
 

korben31 a écrit :

Bonjour
J'ai ubn string qui conteient les informations de cette forme:
VE451EF4:Nom:Prenom:A450:0122558811:Admin
et j'aimerai avoir dans chaque variable :
 
id=VE451EF4
nom=Nom
Prenom=Prenom
Bureau=A450
tel=0122558811
type=Admin
 
pour pouvoir l'intergré dans un constructeur: CUtilisateur(id,nom....);
mais je ne vois vraiment pas avec quelle commande effectuer cette mise en forme


 
Si "VE451EF4:Nom:Prenom:A450:0122558811:Admin" est un string qui s'appelle "Truc", tu peux peut-être essayer de faire : CUtilisateur(Truc.Substring(0,8),Truc.Substring(8,3), etc);
 
(si j'ai bien compris ce que tu voulais faire!)

n°1375445
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-05-2006 à 12:19:12  profilanswer
 

ouais, nan, mais ça c'est vraimment pourrave par contre.

n°1377243
moi23372
Posté le 30-05-2006 à 10:11:30  profilanswer
 

Frolor a écrit :

Si "VE451EF4:Nom:Prenom:A450:0122558811:Admin" est un string qui s'appelle "Truc", tu peux peut-être essayer de faire : CUtilisateur(Truc.Substring(0,8),Truc.Substring(8,3), etc);
 
(si j'ai bien compris ce que tu voulais faire!)


 
non c'est pas du tout une bonne solution. La solution proposée par Arjuna est nettement meilleure.  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  String => separateur => mise en forme

 

Sujets relatifs
en cliquant sur une image mise à jour de la BDDMise à jour du contenu d'un tableau JTable
Mise à jour de mon RTE (rich texte editor)String / TextField
[Résolu] Problème d'encodage de String.[vb6] variable perd sa valeur d'une forme à l'autre
Mise à jour d'une JComboBox en fonction d'une autre...traduire sous forme d'algorithme objet I
solution pour mettre en forme du texte html dans un formulaireForcer l'impression de la mise en forme
Plus de sujets relatifs à : String => separateur => mise en forme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR