WordCount
合作者:201631062430
代码地址:https://gitee.com/dk862422/WordCount.git
本次作业链接地址:https://edu.cnblogs.com/campus/xnsy/Test/homework/2203
基本功能:
wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file.c //返回文件 file.c 的单词总数 wc.exe -l file.c //返回文件 file.c 的总行数 wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace WC { class Program { static void Main(string[] args) { string Str = args[0]; WC w = new WC (); string result = ""; switch (Str) { case "-c": result = w.charCount(args[1]); break; case "-w": result = w.WordCount(args[1]); break; case "-l": result = w.LineCount(args[1]); break; default: Console.WriteLine("命令无效"); break; } WC .Print(result); } } public class WC { public string charCount(string fileName) { string CharCount = "0"; string c = "字符数:"; try { FileStream fs = new FileStream(fileName, FileMode.Open);//打开文件 CharCount = Convert.ToString(fs.Length);//读取字符数 fs.Close(); Console.WriteLine("字符数:" + CharCount); c += CharCount; return c; } catch { Console.WriteLine("文件打开失败"); c += CharCount; return c; } } public string WordCount(string fileName) { string WordCount = "0"; string w = "单词数:"; try { FileStream fs = new FileStream(fileName, FileMode.Open);//读取文件 StreamReader sr = new StreamReader(fs, Encoding.Default); string file = Convert.ToString(sr.ReadToEnd()); fs.Close(); sr.Close(); char[] separator = { ',', ' ', ',' };//逗号和空格是分隔符 string[] word = file.Split(separator, StringSplitOptions.RemoveEmptyEntries );//按指定字符分隔字符串 WordCount = Convert.ToString(word.Length); Console.WriteLine("单词数:" + WordCount); w += WordCount; return w; } catch { Console.WriteLine("文件打开失败"); w += WordCount; return w; } } public string LineCount (string fileName) { string LineCount = "0"; string l = "行数:"; try { FileStream fs = new FileStream(fileName, FileMode.Open); StreamReader sr = new StreamReader(fs, Encoding.Default); string file = Convert.ToString(sr.ReadToEnd()); //读取文件 fs.Close(); sr.Close(); char[] separator = { '\n' }; //换行符为分隔符 string[] line = file.Split(separator, StringSplitOptions.RemoveEmptyEntries); //按指定字符分隔字符串 LineCount = Convert.ToString(line.Length); Console.WriteLine("行数:" + LineCount); l +=LineCount; return l; } catch { Console.WriteLine("打开文件失败"); l += LineCount; return l; } } public static void Print(string result) { try { //写入数据到指定文件 StreamWriter sw = new StreamWriter("result.txt", true); sw.WriteLine(result); Console.WriteLine("数据写入成功"); sw.Close(); } catch { Console.WriteLine("数据写入失败"); } } }
}
运行结果:
总结:
这一次的项目运用了C#的语言。只完成了基本功能,扩展功能还是没有余力去写完,是自己的编码能力不足,整个功能的编写中,暴露自己非常多的问题。在第一眼看到这个作业要求时,是很懵逼的状态,无处着手的感觉,在实现过程中,很多东西都在问,从同学那里学到了很多东西,也为后面的学习提供了一定帮助。相信后面能够做的更好。