读书人

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

发布时间: 2013-08-09 15:16:24 作者: rapoo

【求助】程序处理后输出结果换行符丢失如何解决
本帖最后由 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;

读书人网 >C#

热点推荐