begin process at 2012 02 10 20:29:34
  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 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 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 [C#]Mettre dans une variable int, le résultat d'une requete [ par Phenomenium ] salut je veu recuperer le numéro le plus grand de ma table : DataSet ds; int nbl = 1, nbCol = 1; < listview colonne [ par emmanuel9 ] Bonjour,Quelqun serait t'il comment resizer les colonnes d'un listview en fonction de la taille du listview lui meme ? A la base les colonnes du listv Comment découper une variable ? [ par KaTSuo ] Salut J'aimerais extraire les 4 dernières lettres ou les 4 premières lettres d'une variable que l'on appellera theEntry. Comment dois-je m'y prendre Problème de variable [ par m0rph3us002 ] Salut salutvoilà j'ai un petit souchi dans un de mes prog : c'est un prog qui est composé de trois feuilles et dans l'une d'elle il y a un compteur qu Représentation de modules en Treeview [ par DocTiffo ] Bonjour ,je suis en train de travailler dans un projet de c# et j´ai besoin de l´aide de qq´un qui se connait bien avec le GUI ,Treeview etc..En fait, taille des lignes d'un datagrid [ par OIynK ] Bonjour ! J'aimerais savoir comment soit :     - fixer la hauteur des lignes de mon datagrid     - recuperer la hauteur de ligne x de mon datagrid (


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,281 sec (3)

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