写入记事本包装在任意点?

时间:2009-07-23 14:41:14

标签: c# wrapping notepad

我正在写一个文件,如下所示。我只有百分之百肯定在写入文件的变量中没有换行符。但是,在打印到适用长度的记事本的每一行中的任意字符数时,都会创建换行符。但是,在文件末尾按删除(甚至按住删除)以删除任何非打印字符(如换行符)都无效。在受此影响的任何行的第一个字符之前按退格键会删除上一行中的最后一个字符,但会删除换行符。在最后一个字符后写入会立即移动到下一行。我已经测试了一个新行,持有一个字符只是为了看看我是否可以超越自动换行的开始点。我可以,但不是c#写的地方。我在命令中尝试了TYPE KEYWORDS.LOG,它没有打印换行符,所以我不认为它会影响我以后逐行读取文件。但这是记事本中的一个小故障吗?在C#?在IO.StreamWriter中?在我的代码中? (我不这么认为?)这只是我不知道的财产吗?

显然,WORD WRAP不开启。但是谢谢。 。

调整窗口大小不会包装文本,也不会改变我所描述的效果。

// OPEN STREAM TO KEYWORDS.LOG
StreamWriter fileWrite = new StreamWriter("KEYWORDS.LOG");

for (int i=0;i<Referrals.Count();i++)
{
    // FIRST THE URL
    Console.Write("\n\n{0}\n-", Referrals[i].URL);

    // NOW TO THE FILE!
    fileWrite.Write("{0}@", Referrals[i].URL);


    var SortedKeys = from k in Referrals[i].Keywords.Keys orderby Referrals[i].Keywords[k] descending select k;
    foreach (string Phrase in SortedKeys)
    {
    // NOW TO THE CONSOLE
    Console.Write("\t({0}) {1}\n", Referrals[i].Keywords[Phrase], Phrase);

    // NOW TO THE FILE!
    fileWrite.Write("##{0}##{1}", Referrals[i].Keywords[Phrase], Phrase);
    }

    // LINE BREAK FOR FILE!
    fileWrite.WriteLine("");

}


    // CLOSE FILE STREAM
    fileWrite.Close();

4 个答案:

答案 0 :(得分:6)

这可能不是随意的,你只是没有看到原因。

查看C# TextWriter inserting line break every 1024 characters

最大长度为1024。

如果可以,请粘贴一些示例文本; D

答案 1 :(得分:1)

这绝对不是自动换行的问题。我在使用以前版本的Windows(XP,我认为)的记事本中遇到了这个问题,限制是4096个字符。今天我在Windows 7的记事本中尝试过,限制为1024个字符。 我尝试过的其他几个文本编辑器每行强加一个&#34;字符&#34;通常没有记录的限制。 我很少遇到每行需要超过几百个字符的情况,但我认为没有理由施加限制。

我在创建ASCII立体图时首先遇到了这个问题。我想要一张足够大的可以在海报上打印的东西,我在记事本中看着它。一旦我生成一个超过4096个字符的宽度,每一行都被包裹起来。看起来很糟糕。

这些文本查看器实际上并没有在文本中插入任何换行符。他们只是在改变他们显示文本的方式。这就是为什么你可以删除&#34; line&#34;的最后一个字符。当光标位于下一行&#34;行&#34;的开头时。我把&#34; line&#34;在引号中,因为它不是真正的线。实际上,您正在删除实际文本行中间某处的文本。假设文本编辑器表现良好,当您保存文件时,它仍然会有长行。如果您稍后在能够显示足够长的行的查看器中查看文本,它应该正确显示。

答案 2 :(得分:0)

你有可能在记事本上有“自动换行”吗?对不起,如果这似乎是一个明显的问题。

答案 3 :(得分:-1)

Errr ...在记事本中双击“格式化” - “自动换行”。