J'ai un fichier. Chaque ligne ressemble à ce qui suit:Dans le fichier, si la ligne contient une sous-chaîne, récupérez toute la ligne à partir de la droite
[00000] 0xD176234F81150469: foo
Ce que je tente de faire est, si une ligne contient une certaine sous-chaîne, je veux extraire tout le droit de la sous-chaîne trouvée. Par exemple, si je cherchais 0xD176234F81150469:
dans la ligne ci-dessus, il retournerait foo
. Chaque chaîne est de longueur variable. J'utilise C#.
À noter que chaque ligne du fichier ressemble à ce qui précède, avec un nombre base-16 entre crochets à gauche, suivi d'un hachage hexadécimal et un point-virgule, et une chaîne de caractères anglais par la suite.
Comment puis-je faire à ce sujet?
Modifier
Voici mon code:
private void button1_Click(object sender, EventArgs e)
{
Form1 box = new Form1();
if(MessageBox.Show("This process may take a little while as we loop through all the books.", "Confirm?", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
{
XDocument doc = XDocument.Load(@"C:\Users\****\Desktop\books.xml");
var Titles = doc.Descendants("Title");
List<string> list = new List<string>();
foreach(var Title in Titles)
{
string searchstr = Title.Parent.Name.ToString();
string val = Title.Value;
string has = @"Gameplay/Excel/Books/" + searchstr + @":" + val;
ulong hash = FNV64.GetHash(has);
var hash2 = string.Format("0x{0:X}", hash);
list.Add(val + " (" + hash2 + ")");
// Sample output: "foo (0xD176234F81150469)"
}
string[] books = list.ToArray();
File.WriteAllLines(@"C:\Users\****\Desktop\books.txt", books);
}
else
{
MessageBox.Show("Aborted.", "Aborted");
}
}
J'ai aussi itérés chaque ligne du fichier, en ajoutant à un list<>
. J'ai dû accidentellement supprimé ceci en essayant les suggestions. Aussi, je suis très nouveau à C#. La principale chose que je suis perplexe est l'appariement.
Eh bien, quel bit vous cause des difficultés? Prendre la sous-chaîne? Trouver des lignes correspondantes? Itérer sur le fichier ligne par ligne pour commencer? –
Ce n'est généralement pas une opération très difficile à programmer. Pouvez-vous nous montrer votre code et où vous êtes coincé? Ensuite, nous essaierons de vous donner des suggestions dans la bonne direction. – Bazzz
J'ai ajouté plus d'informations à mon message original. – Seabody