2016-12-09 3 views
0

Je me fais actuellement un petit outil.Comment répéter ceci pour chaque ligne dans la zone de texte enrichi?

Essentiellement j'avoir cette liste qui va comme ceci:

NPWR00160_00 LittleBigPlanet 
NPWR00163_00 Warhawk 
NPWR00179_00 Pure 
NPWR00180_00 Midnight Club: Los Angeles 
NPWR00181_00 echochrome™ 
NPWR00187_00 WipEout® HD 

Ceci est actuellement saisi dans un RichTextBox. J'essaie de faire cela, obtenir le NPWRXXXXXX de la ligne et l'enregistrer comme une chaîne, puis le nom des jeux et enregistrer comme une autre chaîne pour laquelle je peux aller de l'avant et faire ce que je devais originellement faire avec ça. Mais pour chaque ligne du richTextBox qui continue avec cette formation comme ci-dessus.

Je ne sais pas très bien comment obtenir une ligne de la zone richTextBox et l'enregistrer en tant que chaîne, dans laquelle je peux répéter ce processus pour chaque ligne de la zone richTextBox.

Pour ce que j'ai essayé, je me suis donné un exemple que la chaîne était NPWR02727_00 Skydive: Proximity Flight. Ce que je l'ai fait était le suivant:

string game = "NPWR02727_00 Skydive: Proximity Flight"; 
    string NPWR = game.Substring(0,13); 
    string gamename = game.Remove(0, 13); 
    richTextBox2.AppendText("NPWRID: " + NPWR + " Game: " + gamename + Environment.NewLine); 

Ce qui ne fait enregistrer avec succès les cordes et l'écrire dans la deuxième zone de texte comme la nouvelle forme.

Le seul problème est que je ne suis pas sûr de savoir comment convertir une ligne de la RichTextBox et la transformer en une chaîne, et répétez le processus pour chaque ligne dans la zone de texte riche

EDIT

donc, j'ai découvert comment transformer une chaîne en une ligne de RichTextBox ..

string line = richTextBox1.Lines[0];

donc cela va obtenir la première ligne et l'enregistrer comme la chaîne « ligne »

Cette met maintenant à jour le code à

string game = richTextBox1.Lines[0]; 
string NPWR = game.Substring(0,13); 
string gamename = game.Remove(0, 13); 
richTextBox2.AppendText("NPWRID: " + NPWR + " Game: " + gamename + Environment.NewLine); 

Maintenant, comment puis-je obtenir ce code à exécuter pour chaque ligne, je comprends que je besoin de quelque chose de le répéter, et quelque chose à changer le 0 compter par 1 chaque fois qu'il se répète?

EDIT DE NOUVEAU

Impressionnant, oubliez le montage ci-dessus, merci beaucoup!

+0

'foreach (string s dans richTextBox1.Lines) {' – LarsTech

Répondre

1

Je vous suggère de faire quelque chose de similaire à ceci:

 var codes = new List<string>(); 
     var games = new List<string>(); 

     foreach(var s in richTextBox1.Lines) 
     { 
      string[] p = s.Split(new char[] { ' ' }, 2); 
      if (p.Count() == 1) { continue; } 

      codes.Add(p[0]); 
      games.Add(p[1]); 
     } 

Fondamentalement, nous annonçons deux listes du type chaîne, pour stocker respectivement le code et le nom du jeu. Ensuite, nous procédons en boucle à travers la lignes propriété de la RichTextBox, et pour chaque ligne, nous divisons la ligne par le premier index (espace), nous trouvons; demander un maximum de deux chaînes, pour éviter de diviser les éléments à venir; dans le cas où le nom du jeu contient des espaces. Pour les deux sous-chaînes obtenues, nous procédons en enregistrant la première partie dans les codes de liste, et la seconde dans les jeux de liste.

Pour d'autres utilisations (codes/noms traversant), on peut accéder aux deux listes

for(int c = 0; c < codes.Count; c++) 
{ 
    MessageBox.Show(codes[c] + string.Empty + games[c]); 
}