从 RichTextBox 中的每一行获取文本?

Posted

技术标签:

【中文标题】从 RichTextBox 中的每一行获取文本?【英文标题】:Get text from each line in RichTextBox? 【发布时间】:2021-12-18 03:52:20 【问题描述】:

我想从RichTextBox 的每一行中提取一个文本,并在该文本行的开头和结尾添加一个常量文本。当我按下按钮时,新文本将被导出/保存到文本文件中。我能够创建一个循环,但是如何在开头和结尾添加条件?

private void button1_Click(object sender, EventArgs e)
   
    string text1 = "hello";
    string text2 = richboxtext.Text;
    string text3 = "goodbye";

    for (int i = 0; i < text2.Length; i++)
    
        if(...)
        
           ...
        
    
    File.WriteAllText(@"C:\Temp\exapmle.txt", text);

【问题讨论】:

控件有一个Lines集合。 【参考方案1】:

只需循环 Lines 字符串数组:

string textb = "hello";            
string texte = "goodbye";
var sb = new StringBuilder();
foreach(var line in richTextBox1.Lines)

    sb.AppendLine(textb + line + texte);

File.WriteAllText(@"C:\Temp\exapmle.txt", sb.ToString());

【讨论】:

非常感谢,它确实对我有用,我现在更好地理解了 foreach 循环。【参考方案2】:

我想分享我在您的帮助下开发的代码的最终版本。

使用这段代码,我开发了一个脚本,将每行的 IP 地址批量添加到 Fortinet。我还开发了一个脚本来将相同的 IP 地址集中分配给一个组。

 private void button1_Click(object sender, EventArgs e)
        
            string conf1 = "# config firewall address"; 
            string code1 = "    edit " ;
            string code2 = Environment.NewLine + "        set subnet ";
            string code3 = "/32";
            string code4 = Environment.NewLine + "    next" ;
            string conf2 = "end";
            string conf3 = "# config firewall addrgrp";
            string code5 = Environment.NewLine + "    edit test-grp";
            string code6 = Environment.NewLine + "        set member ";
            string code7 = Environment.NewLine + "    next";
            string conf4 = "end";
            var ipadress = new StringBuilder();
            foreach (var line in adresler.Lines)
            
                ipadress.AppendLine(code1 + line + code2 + line + code3 + code4);
            
            var ipgroup = new StringBuilder();
            foreach (var line in adresler.Lines)
            
                ipgroup.Append(line + " ");
            
            File.WriteAllText(@"C:\Temp\exapmle.txt", conf1 + Environment.NewLine + ipadress.ToString() + Environment.NewLine + conf2);
            File.WriteAllText(@"C:\Temp\exapmle2.txt", conf3 + code5 + code6 + ipgroup.ToString() + code7 + Environment.NewLine + conf4);

        

【讨论】:

以上是关于从 RichTextBox 中的每一行获取文本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本文件中的每一行的开头添加序号

C# richtextbox 添加一行彩色文字

C# 如何获取richTextBox的文本内容

如何将在从控制台获取的 URL 中找到的特定字符串替换为在 Ruby 文本文件中写入的每一行中找到的文件内容?

如何将颜色格式应用于 Richtextbox *作为用户类型*(VB.Net)

C# RichTextBox 逐行扫描