Beispiel #1
0
        /// <summary>
        /// Main method: executes all required steps
        /// </summary>
        /// <param name="args">Command-line arguments</param>
        /// <remarks>This method parses the supplied command-line arguments, reads all input files and creates the output file</remarks>
        protected void Execute(string[] args)
        {
            CommandLineParser parser = new CommandLineParser(args, parameters);

            parser.Parse();
            CommandLineParsed(parser);

            foreach (string input in InputFilenames)
            {
                using (Stream inputStream = DataFileTools.OpenInputFile(input))
                {
                    Process(inputStream);
                }
            }

            string outputFilename = OutputFilename;
            Stream outputStream   = String.IsNullOrEmpty(outputFilename) ? Console.OpenStandardInput() : new FileStream(outputFilename, FileMode.Create, FileAccess.Write, FileShare.Read);

            try
            {
                SaveOutput(outputStream);
            }
            finally
            {
                outputStream.Dispose();
            }
        }
Beispiel #2
0
 private void LoadSpaceSeparatedFile(string filename, EventHandler <RowEventArgs> processEntryDelegate)
 {
     if (processEntryDelegate == null)
     {
         throw new ArgumentNullException("processEntryDelegate");
     }
     using (var streamReader = new CountingStreamReader(filename, DataFileTools.OpenInputFile(filename), Encoding.UTF8))
     {
         fileReader = streamReader;
         var reader = new SpaceSeparatedFileParser(streamReader);
         reader.RowComplete += processEntryDelegate;
         reader.Parse();
     }
     fileReader = null;
 }
Beispiel #3
0
 /// <summary>
 /// Perform the analysis
 /// </summary>
 /// <param name="filename">Filename of the input file</param>
 private static void Analyze(string filename)
 {
     using (stream = DataFileTools.OpenInputFile(filename))
     {
         var settings = new XmlReaderSettings {
             XmlResolver = null
         };
         using (XmlReader xml = XmlReader.Create(stream, settings))
         {
             dump = new RevisionXmlDumpParser(xml);
             dump.SiteInfoProcessed += SiteInfoProcessed;
             dump.PageStart         += PageStart;
             dump.PageComplete      += PageComplete;
             dump.RevisionComplete  += RevisionComplete;
             length = stream.Length;
             start  = DateTime.Now;
             Console.TreatControlCAsInput = true;
             try
             {
                 dump.Parse();
             }
             catch (AbortException)
             {
                 if (!quiet)
                 {
                     Console.Error.Write("\nAborted");
                 }
             }
             stop = DateTime.Now;
             Console.Error.WriteLine();
             if (!quiet)
             {
                 Console.Error.WriteLine("{0} pages ({1} revisions) by {2} users analyzed in {3:n0} s", pageCount, totalRevisionCount, users.Count, (stop - start).TotalSeconds);
             }
         }
     }
 }