⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 report.cs

📁 用C#编写的一个款搜索engine的源代码!摘自<Visual c#2005 程序设计>
💻 CS
字号:
using System;
using System.IO;
using System.Text;
using System.Threading;
using System.Collections;
using SECompare.Structure;

namespace SECompare.Kernel
{
	/// <summary>
	/// Summary description for StatisticReport.
	/// </summary>
	public class Report:ThreadStatus
	{
		private String m_Filename;

		/// <summary>
		/// Constructor.
		/// </summary>
		/// <param name="filename">the file to store report, which should be an HTML file(.html).</param>
		public Report(String filename)
		{
			this.m_Filename = filename;
			this.threadStart = new ThreadStart(Run);
		}

		/// <summary>
		/// Create and save statistic report. 
		/// </summary>
		private void Run()
		{

			//Create report file
			FileInfo file = new FileInfo(m_Filename);
			FileStream fs = file.Create();
			fs.Close();
			//define writer
			StreamWriter w = new StreamWriter(m_Filename,true);

			//Get all Crawled sample files
			String folder = (new SECompare.Config.Config()).SamplingedQueryRoot;
			String[] files = Directory.GetFiles(folder);
			
			//**********Write table title**********
			String title = @"<title>Crawled Data Statistic Report</title>";
			String css = @"<style type=text/css>td {font-size: 12px;}</style>";
			w.Write(title+css+"<p><h1 align=center>Query Sample and Crawled Data Statistic Report</h1></p>");
			//*************************************

			//Get all Supported engines
			EngineSet[] engines = Structure.EngineSetting.GetEngineEnums();

			//for each category file
			for(int i=0;i<files.Length;i++)
			{
				file = new FileInfo(files[i]);
				String category = file.Name;

				//************Progress Status Report************
				this.mProcessingFile = category;
				this.mFilePercentage = (float)i/files.Length;
				//**********************************************

				//read query samples
				CrawlSample sample = new CrawlSample();
				sample.Load(category,files[i]);
				ArrayList queries = sample.GetSamples();

				//****************Write Report****************
				String categoryLine = 
					 "<h2 align=center>Category "+(i+1).ToString()+":"+category 
					+"("+ sample.Count + " samples)"
					+"</h2><br><table align=center border=1><tr bgcolor=silver>"
					+"<td>Query Words</td><td>Frequency</td>";
				foreach(EngineSet engine in engines)
					categoryLine += "<td>" + engine.ToString() + " Count</td>";
				categoryLine += "</tr>";
				w.Write(categoryLine);
				//**********************************************

				
				//for each query
				for(int j=0;j<queries.Count;j++)
				{
					CrawlSampleUnit query = (CrawlSampleUnit)queries[j];

					//************Progress Status Report************
					this.mProcessingEntry = query.Words;
					this.mEntryPercentage = (float)j/queries.Count;
					//**********************************************

					//************Write result set counts***********
					String word = query.Words;
					if(word.Length>40)
						word = word.Substring(0,40);
					w.Write("<tr><td>" + word + "</td><td>"+query.Frequency+"</td>");
					foreach(EngineSet engine in engines)
						w.Write("<td>" + QueryResults.GetMaxRank(word,engine.ToString()) + "</td>");
					w.Write("</tr>");	
					//***********************************************
				}
				//****Write table tail****
				w.Write("</table>");
				//************************
			}

			w.Close();
			
			//************Progress Status Report***********
			this.mIsFinished = true;
			//*********************************************
		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -