J'ai un RichTextBox
qui ressemble à ceci:
TEXT NEXT_TEXT 10.505 -174.994 0
TEXT NEXT_TEXT 100.005 174.994 90
TEXT NEXT_TEXT -10.000 -5.555 180
TEXT NEXT_TEXT -500.987 5.123 270
TEXT NEXT_TEXT 987.123 1.000 180
TEXT NEXT_TEXT 234.567 200.999 90
et je veux remplacer le "." avec rien et placez-le dans une ListBox
...
Donc, le nouveau fichier ressemblerait à ceci:
TEXT NEXT_TEXT 10505 -174994 0
TEXT NEXT_TEXT 100005 174994 90
TEXT NEXT_TEXT -10000 -5555 180
TEXT NEXT_TEXT -500987 5123 270
TEXT NEXT_TEXT 987123 1000 180
TEXT NEXT_TEXT 234567 200999 90
J'ai pensé multiplier les valeurs par 1000 mais je ne sais pas comment faire correspondre les calculs sur une chaîne.
Donc, l’idée suivante était de faire ceci (CEPENDANT NE FONCTIONNE PAS) :
// Splits the lines in the rich text boxes
string[] listOneLines = oneRichTextBox.Text.Split('\n');
// Set the selection mode to multiple and extended.
placementOneListBox.SelectionMode = SelectionMode.MultiExtended;
// Shutdown the painting of the ListBox as items are added.
placementOneListBox.BeginUpdate();
// Display the items in the listbox.
foreach (var item in listOneLines)
{
item.Replace(".","");
placementOneListBox.Items.Add(item);
}
// Allow the ListBox to repaint and display the new items.
placementOneListBox.EndUpdate();
Les chaînes sont immuables alors cette ligne est fausse:
item.Replace(".","");
Cela retourne la chaîne une fois le remplacement effectué, mais item
reste inchangé. Tu en as besoin:
foreach (var item in listOneLines)
placementOneListBox.Items.Add(item.Replace(".",""));
Au lieu de "", utilisez String.Empty. De cette manière, aucun nouvel objet n'est créé.
Au lieu de:
item.Replace(".", "");
Essaye ça:
item = item.Replace (".", ""); (edit: c'était mon idée originale, mais c'est faux)
placementOneListBox.Items.Add(item.Replace(".", ""));
string item2 = item.Replace(".", "");
Vous devez utiliser le résultat de Replace
, il ne fonctionne pas sur la chaîne elle-même.
Les cordes sont immuables, donc
item.Replace(".","")
ne modifie pas l'élément, mais retourne une nouvelle chaîne.
Vous devez utiliser:
placementOneListBox.Items.Add(item.Replace(".",""));
Edit: et comme vous pouvez le constater à partir de la rafale de réponses simultanées, beaucoup de nos pairs sont d’accord. ;-)
Remplacez votre remplacement:
item.Replace(".","");
avec ça:
item = item.Replace(".","");
Que diriez-vous
// Fractionne les lignes dans les zones de texte enrichi String [] listOneLines = oneRichTextBox.Text.Replace (".", ""). Split ('\ n');