Как я могу найти номер по имени и поместить его в путь к файлу
Привет. У меня есть проект, и он требует, чтобы я искал номер по имени и помещал его в свой путь к файлу. Например:
Имя LU610364G02
а путь к файлу должен быть: ..\Reports\2016\10\LU610364\
где 2016-3-е число из LU610364G02, 10-4-е и 5-е числа, а LU610364-первые 8 чисел.
Как мне найти значения и поместить их в путь к файлу?
Я использую Microsoft Visual Studio, c#.
Заранее благодарю вас за помощь
Что я уже пробовал:
Попробовал использовать регулярное выражение в качестве выражения, чтобы сопоставить имя с путем к файлу.
<pre lang="c#"> string Timestamp = string.Empty; using (var file = System.IO.File.OpenText(datFile)) { //regexs = regular expressions //compile regexs //Regex nodeRegex = new Regex("NODE :(.*)"); //Regex testModeRegex = new Regex("TEST MODE:(.*)"); //Regex timestampRegex = new Regex("Timestamp:(.*)"); Regex nodeRegex = new Regex("NODE :(.*)", RegexOptions.IgnoreCase); Regex testModeRegex = new Regex("\bTest Mode\b", RegexOptions.IgnoreCase); Regex program = new Regex("\bPROGRAM\b", RegexOptions.IgnoreCase); Regex TimeStamp = new Regex("\bTIMESTAMP\b", RegexOptions.IgnoreCase); while (!file.EndOfStream) { String line = file.ReadLine(); // check name Match m = nodeRegex.Match(line); //string line = "TUI Test Mode: B31P"; string match = string.Format(@"\b{0}\b", FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexTestMode); bool matchTestMode = Regex.IsMatch(line, match, RegexOptions.IgnoreCase | RegexOptions.Singleline); Match matchTest = Regex.Match(line, FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexTestMode); Match matchProgram = Regex.Match(line, FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexPROGRAM); Match matchTimestamp = Regex.Match(line, FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexTimestamp); if (matchTest.Success) { int startIndex = matchTest.Index + FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexTestMode.Length + 1; int endIndex = line.IndexOf(' ', startIndex + 1); TestMode = line.Substring(startIndex, endIndex - startIndex).Trim(); //break; } if (matchProgram.Success) { int startIndex = matchProgram.Index + FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexTestMode.Length + 1; int endIndex = line.IndexOf(' ', startIndex + 1); strProgram = line.Substring(startIndex, endIndex - startIndex).Trim(); //break; } if (matchTimestamp.Success) { int startIndex = matchTimestamp.Index + FAR_Yield_Analysis_Test_Tool.Properties.Settings.Default.RegexTimestamp.Length + 1; int endIndex = line.IndexOf(' ', startIndex + 1); strTimestamp = line.Substring(startIndex, endIndex - startIndex).Trim(); //break;
PIEBALDconsult
Регулярное выражение заменить? Не могу попробовать прямо сейчас, но это должно быть довольно легко.
Patrice T
и у вас есть какой-то код ?