【发布时间】:2011-11-29 11:18:14
【问题描述】:
我正在尝试将字符串切割成 6 个字段,每个字段的最大长度为 30。字符串的总长度为 173。我创建了如下代码;
(
(("" + dr["MESSAGE"]).ToString().Trim().Length<30 &&
("" + dr["MESSAGE"]) != "")?(("" + dr["MESSAGE"]) + "|||||") :
(("" + dr["MESSAGE"]).ToString().Trim().Length>150 &&
("" + dr["MESSAGE"]).ToString().Trim().Length<181)?
(("" + dr["MESSAGE"]).Trim().PadRight(180,' ').Substring(0,30).Trim() + "|" +
("" + dr["MESSAGE"]).Trim().PadRight(180,' ').Substring(31,60).Trim() + "|" +
("" + dr["MESSAGE"]).Trim().PadRight(180,' ').Substring(61,90).Trim() + "|" +
("" + dr["MESSAGE"]).Trim().PadRight(180,' ').Substring(91,120).Trim() + "|" +
("" + dr["MESSAGE"]).Trim().PadRight(180,' ').Substring(121,150).Trim() + "|" +
("" + dr["MESSAGE"]).Trim().PadRight(180,' ').Substring(151,180).Trim()) : "" + "|||||")
代码本身会生成一个输出文件,但没有数据。我得到的只是页眉和页脚,错误“索引和长度必须引用字符串中的位置”,在输出文件的底部指示。
感谢您帮助解决我的问题。
【问题讨论】:
-
在某处你已经超越了字符串的边界。但是你“编写”代码的方式让你(和我们)几乎没有关于代码哪里出错的线索。将您的代码分成几行和几个阶段。您将能够准确地看到错误在哪里。
-
也许你应该考虑让你的代码更具可读性。
标签: asp.net