首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

程序处理后输出结果换行符丢失怎么解决

2013-08-09 
【求助】程序处理后输出结果换行符丢失如何解决本帖最后由 zyz516130383 于 2013-08-02 13:13:02 编辑http:/

【求助】程序处理后输出结果换行符丢失如何解决
本帖最后由 zyz516130383 于 2013-08-02 13:13:02 编辑 http://pan.baidu.com/share/link?shareid=4140727020&uk=1459936912
↑这是下载地址。我用的工具是VS2010,请问下程序处理过后换行符丢失怎么解决?
比如:
da 20                             da 10
da 1      处理后应该是: da 1     现在却变成了da 10 da 1 da 15
da 31                             da 15
换行符直接不见了请问如何解决?
[解决办法]
char[] sp = { ' ', '\t', '\n', '\r' };
string[] temps = content.Split(sp);
就表示它会按照空格/TAB/换行符进行字符串拆分,你改为char[] sp = { ' ', '\t'}应该就可以看出效果了,只是你的需求很奇特,它原本的拆分方式很合理的。


引用:
Quote: 引用:

我这边没有VS环境,但是问题很清楚,就是你在处理的过程中把换行符滤掉了,所以不过滤它就可以了的。

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

丢掉了补上就好了。

但是输出结果几千行不好这样弄啊




代码中什么时候开始丢失换行符的,
然后在输入的时候,遇到丢失换行符的前一个位置,加入换行符!
添加接口实现!(不是手动哦)


不是代码丢失,这个程序是用来处理TXT文本的,txt文本处理结束后输出结果里TXT原有的所有换行符就丢失了。。
现在想知道的是用什么代码加进去可以防止换行符丢失。。工程文件已经全部在上面提供的压缩包了能不能帮忙看下


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace AeLaoye
{
    public partial class Form1 : Form
    {
        string OpenPath;
        string SavePath;


        string content;
        int Plusnumber;

        public Form1()
        {
            InitializeComponent();
        }

        private void OpenFile_Click(object sender, EventArgs e)
        {
            if (openpath.Text == "")
            {
                DialogResult result = openFileDialog1.ShowDialog();
                if (result == DialogResult.OK)
                {
                    OpenPath = openFileDialog1.FileName;
                    openpath.Text = OpenPath;
                }
            }
            else
                OpenPath = openpath.Text;
            try
            {
                StreamReader reader = new StreamReader(OpenPath, Encoding.GetEncoding("GB2312"), true);
                content = reader.ReadToEnd();
                Filecontent.Text = content;
                reader.Close();
            }
            catch (Exception a)
            {
                MessageBox.Show("文件不存在");


            }
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            number.Enabled = false;
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            number.Enabled = false;
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            number.Enabled = false;
        }

        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
            number.Enabled = true;
            try
            {
                Plusnumber = Convert.ToInt32(number.Text);
            }
            catch (Exception a)
            { }
        }

        private void number_TextChanged(object sender, EventArgs e)
        {
            try
            {
                Plusnumber = Convert.ToInt32(number.Text);
            }
            catch (Exception a)
            { }
        }



        private void SaveFile_Click(object sender, EventArgs e)
        {
            if (savepath.Text == "")
            {
                DialogResult result = saveFileDialog1.ShowDialog();
                if (result == DialogResult.OK)
                {
                    SavePath = saveFileDialog1.FileName;
                    savepath.Text = SavePath.Substring(SavePath.LastIndexOf('\\') + 1);
                }
            }
            else
                SavePath = OpenPath.Substring(0, OpenPath.LastIndexOf('\\') + 1) + savepath.Text;
            try
            {
                StreamWriter writer = new StreamWriter(SavePath, false, Encoding.GetEncoding("GB2312"));
                writer.Write(content);
                writer.Close();
            }
            catch (Exception a)
            { }
        }

        private void Go_Click(object sender, EventArgs e)
        {
            content = Filecontent.Text;
            char[] sp = { ' ', '\t', '\n', '\r' };


            string[] temps = content.Split(sp);
            for (int i = 0; i < temps.GetLength(0); i++)
            {
                if (temps[i] == keyword.Text && i < temps.GetLength(0) - 1)
                {
                    try
                    {
                        double number = Convert.ToDouble(temps[i + 1]);
                        if (radioButton1.Checked)
                            number = number / 2;
                        else if (radioButton2.Checked)
                            number = Math.Sin(number);
                        else if (radioButton3.Checked)
                            number = Math.Cos(number);
                        else if (radioButton4.Checked)
                            number = number + Plusnumber;
                        temps[i + 1] = ((int)(number + 0.5)).ToString();

                        i++;    /////需不需要自己看着办._.


                    }
                    catch (Exception a)
                    { }
                }
            }

            content="";
            foreach (string temp in temps)
                content += temp + " ";


            Filecontent.Text = content;
        }
    }
}



能不能帮忙看看哪里出问题

[解决办法]
string[] temps = content.Split(sp);
改成:
 string[] temps = Regex.Split(content, @"([ \t\n\r])");

foreach (string temp in temps)
                content += temp + " ";
改成: 
foreach (string temp in temps)
                content += temp;
 

热点排行