评论会员:迈赫迪吴拉姆 时间:2012/02/04
尝试以下的半C#伪代码
StringBuilder sb = new Stringbuilder();
foreach row in datatable.rows
{
string val = GetDataFromRowColumn();
if(sb.Length + val.Length> 160)
{
SendMessage(sb.Tostring());
sb = new StringBuilder();
}
sb.Append(val);
}
if(sb.Length>0)
SendMessage(sb.ToString());
评论会员:游客 时间:2012/02/04
|GParkings:"假设字符串需要在他们收到的订单发送(我会寻找到另一种解决方案的情况下,这个假设是不正确)尝试线沿线的东西:codeprelang="c#"IList<spanclass="code-keyword"string/span>strings;spanclass="code-comment"///spanspanclass="code-comment"yourstringcollectionfromtheDB/spanIList<spanclass="code-keyword"string/span>messages=spanclass="code-keyword"new/spanList<spanclass="code-keyword"string/span>();spanclass="code-comment"///spanspanclass="code-comment"collectionoftxtmessagestrings/spanStringBuilderbldr=spanclass="code-keyword"new/spanStringBuilder(); spanclass="code-keyword"for/span(spanclass="code-keyword"int/spani=spanclass="code-digit"0/span;i<strings.Count;i++){spanclass="code-keyword"if/span(bldr.Length+strings[i].Length>spanclass="code-digit"160/span)spanclass="code-comment"///spanspanclass="code-comment"160shouldbeinaconstant/span{spanclass="code-comment"///spanspanclass="code-comment"addingthestringwouldputuspast160,sothemessageiscomplete/spanspanclass="code-comment"///spanspanclass="code-comment"'as-is'/spanmessages.Add(bldr.ToString());spanclass="code-comment"///spanspanclass="code-comment"putthecompletemessageinourlist/spanbldr.Clear();spanclass="code-comment"///spanspanclass="code-comment"startanewmessage/span} bldr.Append(strings[i]+spanclass="code-string""/spanspanclass="code-string""/span);spanclass="code-comment"///spanspanclass="code-comment"addthestringtothecurrentmessage/span} messages.Add(bldr.ToString());spanclass="code-comment"///spanspanclass="code-comment"addthelastmessage/span/pre/code
GParkings
评论会员:游客 时间:2012/02/04
因为我在我以前的解决方案的假设是不正确的,其实你找1的最佳合适的算法,将尝试填补最小容量流失的消息,我做了一个谷歌搜索上的位代您发现这样的:imgsrc=http://www.orcode.com/img/ico/smiley_tongue.gif这个例子是可变大小的"元素放入"垃圾箱"的概念应该是一样的,如果你认为160个字符的消息,作为"bin"和可变长度的字符串'元素'"希望帮助,或至少就足够了,直到CP的神胜过{S0}