using System;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication2 {
class Program {
private static Regex fmt = new Regex(@"^\s*(?<param1>\d+)\s+'(?<param2>(\d|\s|\w)*)'\s*$",
RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Compiled);
static void ScanData(string line, out int param1, out string param2) {
Match m = fmt.Match(line);
if (m.Success) {
param1 = Convert.ToInt32(m.Groups["param1"].Value);
param2 = m.Groups["param2"].Value.ToString();
} else {
param1 = 0;
param2 = "";
}
}
static void Main(string[] args) {
// пример строки ввода:
// 1 'ewertert23423'
string s = Console.ReadLine();
int p1;
string p2;
ScanData(s, out p1, out p2);
Console.WriteLine("param1: {0}, param2: '{1}'", p1, p2);
Console.ReadKey();
}
}
}
Форматный ввод-вывод на C#
У меня возникла потребность в написании функции, которая считывает
некоторые цифры(строка цифр, разделенных пробелами) из файла.
В C++ есть функции, которые поддерживают форматный ввод/вывод.
Подскажите, пожалуйста, может такие есть и С#.
Можно воспользоваться регулярным выражениями. Это наиболее общее решение для простого и не очень разбора текстовых файлов.