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

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Boucle for et indexation de variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle for et indexation de variable

n°1331247
Frolor
Posté le 23-03-2006 à 17:55:23  profilanswer
 

Bonjour,
 
J'ai dans mon programme plusieurs richtextbox (richtextbox1, richtextbox2...). Je souhaiterais faire une boucle for pour sauvegarder à la suite le contenu des richtextbox dans un fichier :  
 
    for (int i = 1; i <= 5; i++)
            richTextBox[i].SaveFile("c:\\rtb"[i]".sav" );  
 
Seulement voilà, je n'arrive pas à faire en sorte que le i variant puisse se "coller" au richtextbox--- et au c:\\rtb---.sav pour faire varier ces deux paramètres dans la boucle.  
 
Des idées ?
 
Merci !
 
 
               

mood
Publicité
Posté le 23-03-2006 à 17:55:23  profilanswer
 

n°1331253
ixemul
Nan mais sans blague ! ⚡
Posté le 23-03-2006 à 18:07:32  profilanswer
 

Impossible tel quel.
 
 
 
solution brute:
 

Code :
  1. HashTable tbl = new HashTable();
  2. foreach(Constrol ctrl in this.Controls)
  3. {
  4.     if(ctrl is RichTextBox)
  5.     {
  6.         tbl.Add(ctrl.Name,ctrl);
  7.     }
  8. }
  9. for(int i=0; i< tbl.Count; i++)
  10. {
  11.     string counter = "RichTextBox"+i.ToString();
  12.     RichTextBox rtbEnCours = (RichTextBox) tbl[counter];
  13.    
  14.     if(rtbEnCours != null)
  15.         rtbEnCours.SaveFile(@"c:\rtb"+i.ToString()+".sav" );
  16. }


 
le tout entre try..catch... bien entendu
 
Sinon, plus classe, en utilisant la reflexion de C#, mais j'ai pas trop le temps d'expliquer la  :ange:  
 
Ou en utilisant les propriétés Tag des richtextbox, ou... Enfin, ce ne sont pas les solutions qui manque :D

n°1331257
Frolor
Posté le 23-03-2006 à 18:17:54  profilanswer
 

C'est quoi les proprriétés tag des richtexbox?

n°1331259
ixemul
Nan mais sans blague ! ⚡
Posté le 23-03-2006 à 18:24:06  profilanswer
 

Frolor a écrit :

C'est quoi les proprriétés tag des richtexbox?


 
C'est un champ de propriété commun a tous les Controles heritants de la classe Controle du framework, te permettant de stocker une variable de type object dedans, tu peux t'en servir par exemple pour y stocker le nom du fichier de sortie que tu desire et ensuite boucler de la sorte:
 
 
 

Code :
  1. RichTextBox1.Tag = "rtb1.sav";
  2. RichTextBox1.Tag = "rtb2.sav";
  3. RichTextBox1.Tag = "rtb3.sav";
  4. // et ainsi de suite...
  5. foreach(Constrol ctrl in this.Controls)
  6. {   
  7.     if(ctrl is RichTextBox && ctrl.Tag != null && ctrl.Tag is string)
  8.     {
  9.         ctrl.SaveFile(@"C:\"+Convert.ToString(ctrl.Tag));
  10.     }
  11. }

n°1331331
moi23372
Posté le 23-03-2006 à 20:43:35  profilanswer
 

pourquoi ne pas bêtemement récupérer les trois textes et les concaténer. Faut pas se chercher des complications quand il n'y en a pas. On en plus en C ou en C++ mais en .NET les gars ;-)

n°1331343
Taz
bisounours-codeur
Posté le 23-03-2006 à 21:01:18  profilanswer
 

z'avez le droit d'utiliser string.Format les mecs !

n°1331376
ixemul
Nan mais sans blague ! ⚡
Posté le 23-03-2006 à 21:58:47  profilanswer
 

moi23372 a écrit :

pourquoi ne pas bêtemement récupérer les trois textes et les concaténer. Faut pas se chercher des complications quand il n'y en a pas. On en plus en C ou en C++ mais en .NET les gars ;-)


 
 
Sauf que cela ne reponds pas à la question de base:
 
Sauvegarder en une boucle le texte de 3 richtextbox en 3 fichiers Distincts...
 
 

n°1331546
Frolor
Posté le 24-03-2006 à 11:11:33  profilanswer
 

Merci pour vos solutions mais ça ne marche pas :(
 
D'après les tests que j'ai fait, j'ai l'impression que ça bloque au niveau de cette ligne :  
 
RichTextBox rtbEnCours = (RichTextBox) tbl[counter];
 
le [counter] n'appelle pas la bonne case dans la hashtable, du coup rtbencours reste vide...
 
Des idées?

n°1331579
ixemul
Nan mais sans blague ! ⚡
Posté le 24-03-2006 à 11:39:00  profilanswer
 

Frolor a écrit :

Merci pour vos solutions mais ça ne marche pas :(
 
D'après les tests que j'ai fait, j'ai l'impression que ça bloque au niveau de cette ligne :  
 
RichTextBox rtbEnCours = (RichTextBox) tbl[counter];
 
le [counter] n'appelle pas la bonne case dans la hashtable, du coup rtbencours reste vide...
 
Des idées?


 
 
Remplacer:
 

Code :
  1. string counter = "RichTextBox"+i.ToString();


 
par
 

Code :
  1. string counter = "richtextbox"+i.ToString();


 
Bref, il faut être rigoureu sur la valeur de la clé que tu mets dans la hashtable (respecte bien la casse des caracteres)

n°1335772
Frolor
Posté le 30-03-2006 à 18:39:57  profilanswer
 

Merci ixemul, ta première solution marche !  
 
(oui bon je sais c'est un peu tard pour te remercier, mais ce n'est que maintenant que j'arrive à faire marcher ton code ;) )

mood
Publicité
Posté le 30-03-2006 à 18:39:57  profilanswer
 

n°1400628
burn2
ça rox du poney
Posté le 04-07-2006 à 19:27:01  profilanswer
 

Bonjours à tous je viens vous demande votre aides, car j'ai un petit problème alors voilà j'ai une richtext box et j'aissaye de récupérer les espaces mais impossible voilà un exemple:
 
Soit la richtextbox Texte1
 
soit le texte suivant dans cette Richtextbox :"ceci est un test!"
 
Si je fais Texte1.Text[5] logiquement j'ai " " sauf que là ça me renvoie "e" et Texte1.Text[4] renvoie "i"! Ma question est comment récupérer les espaces??? merci d'avance.


Message édité par burn2 le 04-07-2006 à 19:31:46

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
n°1400632
moi23372
Posté le 04-07-2006 à 19:47:48  profilanswer
 

que dois tu fais exactement. Si c'est récupéré les mots séparément dans des variables:
string[] mots = Texte1.Text.Split(' '); //split à peut etre deux paramètres
 
sinon tu peux utiliser indexof/lastindexof/... pour retrouver tes espaces.  
 
Je suis assez étonné de la réaction que tu racontes du RichTextBox, faudrait que j'essaye une fois...

n°1400633
burn2
ça rox du poney
Posté le 04-07-2006 à 19:52:06  profilanswer
 

Bon je retire ce que j'ai dis! Je viens de trouver, par contre si j'ai un char et que je fais char.equals(" " ) ça ne marche pas pour le comparer à un espace! On fait comment pour dire char e==" " ?
 
 
EDIT: trouvé ' ' au lieux de " "  :sleep:  Je suis vraiment fatigué moi!


Message édité par burn2 le 04-07-2006 à 19:57:43

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
n°1405349
_Mose_
Lonesome coder
Posté le 12-07-2006 à 11:21:34  profilanswer
 

Char.IsWhiteSpace(mychar)

n°1405434
burn2
ça rox du poney
Posté le 12-07-2006 à 12:09:42  profilanswer
 

non mais il suffisait que je remplace les "" par des quotes, "" c'est pour des string pas des chars :D


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
n°1405448
_Mose_
Lonesome coder
Posté le 12-07-2006 à 12:18:47  profilanswer
 

burn2 a écrit :

non mais ...

Comment ça 'non' ? Si si, j'insiste. Char.IsWhiteSpace() ça fonctionne. C'est même un peu plus rapide que e == ' ', car ça évite une vérification de type. (Bon ok, ça se ressent que si on le fait 1000000000 fois de suite) :)

n°1405707
burn2
ça rox du poney
Posté le 12-07-2006 à 16:05:00  profilanswer
 

Lol c'était juste pour dire que dans mon cas suffisait juste de faire ça cependant si ta methode est plus rapide je l'adopterais alors :o


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"

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

  Boucle for et indexation de variable

 

Sujets relatifs
Alert et variable PHPboucle while: table de multiplication
Variable à la suite...AIDEcreer variable globale modifable par les sub
[résolu] Enregistrer page.php interpretté dans un variableProbleme pour boucle sur collection userform
echange de variable[MACRO VB] combox + variable
Oracle9i : pb perf : like avec variableboucle if then else dans une autre boucle if then else
Plus de sujets relatifs à : Boucle for et indexation de variable


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