namespace ff.links
{
static partial class Program
{
static void Main(string[] args)
{
var sw = new Stopwatch();
sw.Start();
"let's begin...".print();
var finds = fromTypical().scan();
"find targets is ".print(pfx, finds.Count().ToString());
//finds.print();
var bro = finds.Where(b => b.Contains(ffBinary));
"find browsers is ".print(pfx, bro.Count().ToString());
bro.print(pfx);
var cfg = finds.Where(b => b.Contains(fflConfig));
"find configs is ".print(pfx, cfg.Count().ToString());
cfg.print(pfx);
var profiles = finds.Where(b => b.Contains(ffProfileSign));
"find profiles is ".print(pfx, profiles.Count().ToString());
//profiles.print();
profiles.buildLinks(bro.First());
//profiles.prefsApplay();
//links2start();
sw.Stop();
var ts = sw.Elapsed;
$"RunTime {ts.Hours:00}:{ts.Minutes:00}:{ts.Seconds:00}.{ts.Milliseconds:000}".print();
//#if DEBUG
// "press any key to continue...".print();
// Console.ReadKey();
//#endif
}
const string pfx = " ::> ";
}
}
или так
namespace Parser***
{
/// <summary>
/// класс для работы с ***
/// на основе Sgoliver.NRtfTree
/// </summary>
public static class useNRtfTree
{
/// <summary>
/// Нарезка
/// </summary>
public static void job()
{
$"..load...".print();
var tree = new RtfTree();
tree.LoadRtfFile(x.Src());
var rawRtf = tree.Rtf;
$"scan OKUD forms...".print();
(var f, var l) = tree.RootNode.ChildNodes[0].searchForms();
var c = l - f >> 1;
c++;
$"\tfound forms {c}, groups NRtfTree - first {f} last {l}".print();
$"..cutting...".print();
но что бы это работало, надо еще
пару правильных методов, в правильном месте что то вроде такого
namespace Parser***
{
public static class x
{
// вырезано
public static void print(this string s, string pfx = "", string sfx = "", string nl = "\n")
=> Console.Write($"{pfx}{s}{sfx}{nl}");
public static void print(this List<string> l, string pfx = "", string sfx = "", string nl = "\n")
{
foreach (var s in l)
s.print(pfx, sfx, nl);
}
}
}
можно конечно и проще )).. и даже сложнее - тоже можно ))