C#阅读/拆分文本文件和反向句子练习

时间:2016-04-26 08:34:14

标签: c# forms file

我正在尝试使用Visual Studio和Windows窗体在C#中进行这本书练习很长一段时间,但是,我在最后几步遇到了麻烦,本书没有解决方案手册我可以寻求帮助

以下是练习的内容:

  1. 读入文件
  2. 逐行拆分文件
  3. 将每一行推到堆栈
  4. 将每一行弹出到结果窗口
  5. 保存反转的文件(句子应该颠倒)。
  6. 这是一张窗体应该是什么样子的图片:

    What the windows form should look like

    以下是名为SocialJustice-SampleText.txt的示例.txt文件:

      

    社会正义的观念天生就是一个主观概念。社会创造的现实对社会制度的制定至关重要,“正义”存在于所有个体的思想中,因为我们每个人对于公正或不公正,公正或不公平,对与错都有不同的看法(Tyler,1997)。反过来,从社会创造的现实中产生的东西被认为是社会制度制定中的“第一美德”(罗尔斯,1971),也是政治,法律和其他管理当局受到审判时出现的第一种形式的标准(凯尔曼和汉密尔顿,1989年)。从院士的角度来看,社会正义在道德哲学,神学,政治学,法律,社会心理学等许多领域都有成果。从公民的角度来看,社会公正是现代话语的核心,涉及与财富平等分配相关的主题(Piketty,2014),健康食品的平等分配(Alkon和Agyeman,2011),以及人权的一般规则。作为能够在同等努力下取得平等成果的优点(Cergy-Pontoise,2005; Wilkinson和Pickett,2010)。因此,社会正义本质上是一种实用主义者的工具主义者(Fraser,1998),因为社会正义的心理学是基于社会情境中某个行为或事件的后果和意义所预测的,并且这种意义不能在此之前给出。经验(Denzin,2012)寻求解决社会正义问题的实用主义(Denzin,2012; West,1995)。研究社会正义就是采用固有的道德目标(Denzin,2012; West,1995),其中产出本身具有政治后果。反过来,我们的社会正义观念不是来自普遍主义的本体论,而是来自心理驱动的对行为的理解(Tyler,1997)。然而,许多关于社会正义的研究都是基于工业革命(引用)的组织工作,而在信息时代理解社会公正方面则更少(Eubanks,2011)。当我们将对社会正义心理学的理解转化为信息时代,并为信息系统研究提供新的前景时,我们在信息,技术,社会系统和实践的交汇点中概念化研究领域,这些领域仅仅是行动和谎言组织容器(Winter et al。,2014)。在本节中,我们借鉴了社会正义的心理学(Tyler,1997; cite; cite),它反过来源于组织正义的词源,神学和哲学根源,以阐明四个方面:相对剥夺,分配正义,程序正义和报应正义,可以作为IS中语用社会正义研究的平台。

    到目前为止,我已经使用两个富文本框创建了表单,并创建了两个按钮“打开文件”和“拆分文件”。当我点击“打开文件”按钮时,我也读过.txt文件。

    根据我迄今所做的工作,以下是我的表单:

    My windows form

    这是我的完整代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    
    namespace FileExercise
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void OpenFileButton_Click(object sender, EventArgs e)
            {
                StreamReader objstream = new StreamReader("C:\\Users\\Omie\\Desktop\\SocialJustice-SampleText.txt");
    
                richTextBox1.Text = objstream.ReadLine();
            }
    
            private void SplitFileButton_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    

    所以我遇到了第2-5步的问题,并且想知道是否有人可以根据我已经开展的工作为我提供一个如何去做的例子。

    谢谢。

    编辑:更新代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Text.RegularExpressions;
    
    namespace FileExercise
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void OpenFileButton_Click(object sender, EventArgs e)
            {
                string TextFile = File.ReadAllText("C:\\Users\\Omie\\Desktop\\SocialJustice-SampleText.txt", Encoding.UTF8);
                richTextBox1.Text = TextFile;
            }    
    
            private void SplitFileButton_Click(object sender, EventArgs e)
            {
    
                string SplitFile = File.ReadAllText("C:\\Users\\Omie\\Desktop\\SocialJustice-SampleText.txt", Encoding.UTF8);
                string[] SplitFileBySentence = Regex.Split(SplitFile, ".");
    
                foreach (string Period in SplitFileBySentence)
                {
                    richTextBox2.Text = Period;
                }
            }
        }
    }
    

1 个答案:

答案 0 :(得分:0)

您可以使用

string[] readText = File.ReadAllLines("C:\\Users\\Omie\\Desktop\\SocialJustice-SampleText.txt") 

将所有行读入字符串数组。

然后,处理循环中的每一行。我希望你能写出反转这条线的代码。