Cela devrait faire l'affaire et est probablement la solution optimale, sans plus d'information> : D
void Main()
{
Debug.Print(Homework_Problem_Number_54_000_601.
Parse("NAME SURNAME NUMBER @2131231313"));
//this prints "NAME SURNAME NUMBER " without the quotes to the console
}
void SetTextBoxText(TextBox textBox, string value) { textBox.Text = value; }
unsafe static class Homework_Problem_Number_54_000_601
{
[ThreadStatic]static StringBuilder __builder;
public static string Parse(string textToParse)
{
if (textToParse == null) return null;
var builder = __builder = __builder ?? new StringBuilder();
builder.clear();
fixed (char* pTextToParse = textToParse)
{
var pTerminus = pTextToParse + textToParse.Length;
for (var pChar = pTextToParse; pChar < pTerminus; ++pChar)
{
switch (*pChar)
{
case '@':
return builder.ToString();
break;
default:
builder.Append(*pChar);
break;
}
}
}
throw new ArgumentException("textToParse was not in the expected format");
}
}
En ce qui concerne la lecture du fichier, c'est difficile de dire sans spécification de format de fichier de votre part, mais maintenant que vous avez posté le code que je vais essayer ceci:
string lines = outputToBox.ReadToEnd();
StringBuilder builder = new StringBuilder();
foreach (string line in lines.Split('\n'))
{
int index = line.IndexOf('@');
if (index != -1) builder.AppendLine(line.Substring(0, index));
}
txtDisplay.Text = builder.ToString();
Ne pas oublier de changer la zone de texte à mode multi-ligne si nécessaire.
Regardez '.IndexOf()' 'et .Substring()' méthodes. – Equalsk
Avez-vous déjà essayé quelque chose? Vous pouvez regarder dans substring, indexOf, et textbox.text – kristech
@kristech Oui j'ai essayé de travailler avec des énumérateurs et peu de choses avec linq mais je ne comprends pas le concept assez bon pour les utiliser –