je continue à obtenir une erreur "Index est en dehors des limites du tableau" sur la ligne # 574 qui est:Index hors limites de l'erreur de tableau lors de l'analyse de la chaîne de police?
label.Font = new polices (fontNameFields [0], Single.Parse (fontNameFields [1]));
... Le fichier texte suivant je suis analyse contient cette information exacte:
Label
"hi tyler"
23, 76
Arial,12.5
... Je peux analyser avec succès toutes les autres informations (tout simplement pas la dernière ligne), et le code i ont est:
MatchCollection lines = Regex.Matches(File.ReadAllText(Path), @"(.+?)\r\n""([^""]+)""\r\n(\d+), (\d+)");
foreach (Match match in lines)
{
string control = match.Groups[1].Value;
string text = match.Groups[2].Value;
int x = Int32.Parse(match.Groups[3].Value);
int y = Int32.Parse(match.Groups[4].Value);
String cfont = match.Groups[5].Value;
string color = match.Groups[6].Value;
Console.WriteLine("{0}, \"{1}\", {2}, {3}, {4}, {5}", control, text, x, y, cfont, color);
switch (control)
{
case "Label":
Label label = new Label();
label.Text = text;
label.AutoSize = true;
label.IsAccessible = true;
label.MouseClick += new MouseEventHandler(label_MouseClick);
label.MouseDoubleClick += new MouseEventHandler(label_MouseDoubleClick);
label.MouseDown += new MouseEventHandler(label_MouseDown);
label.MouseMove += new MouseEventHandler(label_MouseMove);
label.MouseUp += new MouseEventHandler(label_MouseUp);
label.Location = new Point(x, y);
canvas.Controls.Add(label);
String fontName = cfont;
String[] fontNameFields = fontName.Split(',');
label.Font = new Font(fontNameFields[0], Single.Parse(fontNameFields[1]));
... Je pense qu'il peut y avoir quelque chose de mal avec le regex qui obtient la substance de la police ... Je ne sais pas, mais ça ne marchera pas, quelqu'un peut-il s'il vous plaît aider?
Pour une histoire de ce problème, voir: Parsing font info and converting it to System.Drawing.Font
Que génère votre instruction 'Console.WriteLine'? –
je ne sais pas. c'est une application winforms, donc pas de fenêtre de console apparaît. J'ai simplement oublié de supprimer cette ligne –
Vous demandez de l'aide, mais vous ne pouvez pas prendre la peine de faire votre propre débogage? Vous avez déjà entendu parler de 'MessageBox.Show'? –