Bonjour,
j'ai un problème de portée de mes variables, je m'explique;
j'ai un programme qui traite un fichier ligne par ligne et j'aimerai qu'à la fin du traitement il appelle une autre fonction qui va prendre en paramettre le fichier traité (dans un string); donc voila mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
static void fonction1(files)
{
string sCra;
 
foreach (string filename in files)
            {
                StreamReader sR = new StreamReader(filename);
                Regex r = new Regex(@"\[([^:]+).*");
 
                string line;
 
                while ((line = sR.ReadLine()) != null)
                {
                    if (line.Contains("grep"))
                    {
                        string[] _split = line.Split(' ');
 
                        sCra = _split[4];
 
                        if (r.IsMatch(sCra))
                        {
                            string grp = r.Match(sCra).Groups[1].Value;
                            sCra = grp;
                        }
 
                        sCra += "\t"+ _split[9];
 
                    }
 
                }
 
            }
            fonction2(sCra);
}
J'ai une erreur du type:
utilisation variable sCra non assignée.
j'ai essayé plusieurs trucs sans succès. ce que je ne comprend pas:
1. ma variable est déclarée au niveau de la fonction donc devrait être utilisable partout au sein de la fonction.
2. quand j'appelle ma variable juste après
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sCra += "\t"+ _split[9];
(pour un affichage en console) cela marche bien sauf que si j'appelle ma fonction2 à cet endroit, je risque de faire un appel à chaque itération (chaque traitement de ligne).

merci pour vos réponses.