begin process at 2010 02 10 05:39:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Algorithme

 > 

Compression, Split et Cryptage

 > 

découpé une variable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

découpé une variable

lundi 16 février 2009 à 16:50:32 | découpé une variable

cirdec2000

bonjour
j'ai une variable
exemple :

VariableText="[Gras]On apprend[/Gras] [Taille 1]tout à partir de zéro[/Taille 1]"

je voudrais la découpé selon les balises [gras][/gras] et [taille 1][/taille1]
comment pourrais je faire ??
lundi 16 février 2009 à 17:00:44 | Re : découpé une variable

billou_13

Membre Club
Bonjour,

Il va te falloir jouer sur les expressions régulières:
using System.Text.RegularExpressions;
Class RegEx [ http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx ]
Ainsi, tu pourras analyser facilement tes chaînes de caractères et récupérer les valeurs. Ton pattern ne doit pas être très dur à trouver :)

Quelques liens codes sources:
http://www.csharpfr.com/codes/REMPLACER-CHAINE-COMPRISE-ENTRE-BORNES_34866.aspx
http://www.csharpfr.com/tutoriaux/UTILISATION-REGEX-CSHARP_557.aspx

+ un petit logiciel très pratique pour tester les expressions régulières:
[ Lien ]

Bon courage,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
lundi 16 février 2009 à 17:17:17 | Re : découpé une variable

bubbathemaster

Y'a des regexp qui trainent sur le net pour XML. T'as qu'à remplacer les < et > par [ ] et tu devrais pouvoir t'en sortir.
lundi 16 février 2009 à 17:35:15 | Re : découpé une variable

cirdec2000

oui mais le regex va pas juste me permettre de remplacer les balises ??

sinon moi j'étais partit sur ce code
c'est pour au final imprimer sur un ticket

int PlaceDebGras = texte.IndexOf("[Gras]",0);
int PlaceFinGras = texte.IndexOf("[/Gras]",0);

string PartieUn=texte.Substring(0,PlaceDebGras);
PrinterFont fontt = new PrinterFont(Elargissement.Normal, Taille.Moyen);
DrawText(PartieUn, Alignement.Gauche, new Point(0, 0), fontt);

string PartieDeux=texte.Substring(PlaceDebGras,PlaceFinGras+7);
PrinterFont fonttt = new PrinterFont(Elargissement.Normal, Taille.Grand);
DrawText(PartieDeux, Alignement.Gauche, new Point(0, 0), fonttt);

string PartieTrois=texte.Substring(PlaceFinGras+7,texte.Length-PlaceFinGras+7);
PrinterFont fontttt = new PrinterFont(Elargissement.Normal, Taille.TresGrand);
DrawText(PartieTrois, Alignement.Gauche, new Point(0, 0), fontttt);

lundi 16 février 2009 à 21:09:21 | Re : découpé une variable

Bidou

Administrateur CodeS-SourceS
Tu peux remplacer, découper, lire, etc etc...
Bon, c'est clair que faut un peu connaître sinon tu vas perdre quelques heures :D



-Blog-
-Site Perso-
mardi 17 février 2009 à 11:47:52 | Re : découpé une variable

cirdec2000

voila sur quelle code je suis partie


string maChaine = "[Gras]On apprend[/Gras] [Taille 1]tout[/Taille 1]";
            MatchCollection matches = Regex.Matches(maChaine, @"\[(.+?)\](.*?)\[/.+?\]");

            foreach (Match match in matches)
            {
                string nomBalise = match.Groups[1].Value;
                string contenu = match.Groups[2].Value;
                Console.WriteLine(nomBalise);
                Console.WriteLine(contenu);
                Console.Read();
            }

le soucis c'est si ma variable est = a
string maChaine = "On[Gras] apprend[/Gras] [Taille 1]tout[/Taille 1]";

et bien du coup le "On" saute
mardi 17 février 2009 à 11:58:31 | Re : découpé une variable

billou_13

Membre Club
Bonjour,

Y'a pas de secret. C'est à toi de prendre en compte tout ce qui est hors balise :)
Il te faut donc ne pas oublier un seul cas.
Exemple: [Taille 2 ]On[Gras] apprend[/Gras][/Taille 2 ] [Taille 1]tout[/Taille 1].

Bon courage,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
vendredi 20 février 2009 à 19:46:34 | Re : découpé une variable

cirdec2000

enfin terminé
dur dur quand même
merci a toi StormimOn

voila je mets le code pour ceux que ça intéresse


string maChaine = "";
//maChaine = "je travaille |[Gras]On apprend[/Gras]| |[Taille 1]tout à partir de zéro[/Taille 1]|";
//maChaine = "|[None]je travaille [/None]||[Gras]On apprend[/Gras]| |[Taille 1]tout à partir de zéro[/Taille 1]|";
//maChaine = "je travaille |[Gras]On apprend[/Gras]| enfin je pense |[Taille 1]tout à partir de zéro[/Taille 1]| quoique";
//maChaine = "je travaille |[Gras]On apprend |[Taille 1] enfin je pense tout à partir de zéro[/Taille 1]|le retour [/Gras]| quoique";
maChaine = "je travaille |[Gras]On apprend[/Gras]| |[Taille 1]tout à partir de zéro[/Taille 1]||[Gras]fin[/Gras]| quoique";
 
 
string[] tab = maChaine.Split('|');
int NbrElementsTab = tab.Length;
 
for(int i = 0; i < NbrElementsTab; i++)
{

// @ annule l'effet du car d'échappement \
// \[ \] => entre [ ]
// () = groupement
// . = n'importe quel caractère
// + = 1 fois ou plus
// ? = 0 ou 1 fois
// * = 0 ou plusieurs fois
// {1,} = 1 ou plusieurs fois
 
 
MatchCollection matches = Regex.Matches(tab[i], @"\[(.+?)\](.*?)\[/.+?\]");
 
if(matches.Count > 0)// si balises trouvées
{
foreach(Match match in matches)
{
string nomBalise = match.Groups[1].Value;
string contenu = match.Groups[2].Value;
 
//Console.WriteLine(nomBalise);
Console.WriteLine(contenu);
}
}
else
{
if(tab[i] != "")
{
MatchCollection matches2 = Regex.Matches(tab[i], @"\[(.+?)\]([a-zA-Z0-9_ ]{1,})");
 
if(matches2.Count > 0)// si balises trouvées
{
foreach(Match match2 in matches2)
{
string nomBalise2 = match2.Groups[1].Value;
string contenu2 = match2.Groups[2].Value;
 
//Console.WriteLine(nomBalise2 + " testbalise2");
if(contenu2 != "")
{
Console.WriteLine(contenu2);
}
}
}
else
{
MatchCollection matches3 = Regex.Matches(tab[i], @"([a-zA-Z0-9_ ]{1,})\[(/.+?)\]");
 
if(matches3.Count > 0)// si balises trouvées
{
foreach(Match match3 in matches3)
{
string contenu3 = match3.Groups[1].Value;
string nomBalise3 = match3.Groups[2].Value;
 
//Console.WriteLine(nomBalise2 + " testbalise2");
if(contenu3 != "")
{
Console.WriteLine(contenu3);
}
}
}
else
{
Console.WriteLine(tab[i]);
}

}
 

}
}

}

Console.Read();



Cette discussion est classée dans : taille, variable, gras, découpé


Répondre à ce message

Sujets en rapport avec ce message

Fixer une taille d'une variable [ par yoyo1092 ] bonjour,Est ce qu'il est possible de définir une taille d'une varaible string comme en Vb par exempleEx : dim s as string * 10Merci Taille d'une classe [ par sibi12 ] Bonjour, Je crée plusieur instance d'une petite classe qui ne contient qu'un evenement et quelque petite variable Rectangle, float ,.. enfin rien de Tableau de taille variable sous c# [ par titphil ] Bonjour, Je suis novice en programmation c# et je voudrais savoir comment définir un tableau de taille variant selon une entrée au clavier en c#. Je Split d'un String toutes les n lignes [ par mouic ] Bonjour [^^happy17], Je voudrais découper un type String en plusieurs variables String ou chaque variable aurait 1000 lignes. Je m'explique: A l'ai Image dans WPF [ par xmox667 ] Salut à tous, J'ai un contrôle WPF Image: 1) de taille 22*22 2) La propriété Stretch a None J'y affiche une image (png) de taille 22*22 mais elle comment accéder à un variable de type Object [ par dorras7 ] Bonsoir, j'ai une méthode qui retourne une variable de type Object Object ObjColl=GetCollection(); ObjColl c'est une collection des objets je veux acc taille rapport Crystal Report [ par beuz15 ] Bonjour à tous, j'ai créé une application en c# avec visual studio 2008, qui contient plusieurs rapports (crystal report). Ces rapports fonctionnen lire variable d'une adresse avec un socket [ par justforthesnow ] Bonjour à tous, J'ai un logiciel qui se connecte à une adresse IP en passant des variables. Du style, 192.168.0.1?var1=toto Je voudrais récupérer la Type d'une variable [ par 76julien ] Salut j' ai une petit question comment faire le test d'une variable qui arrive pour savoir si c'est int ou autre ? is numeric??? sa ne marche pas ...


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales