如何去掉格式化字符
<P>在CAD中普通的字符串(即没有任何格式信息的字符串)得到后的内容就是显示的内容,但是经过格式化的字符串中包括了很多格式化信息,如换行符,等等~~现在要做的就是提取里面的有用信息字符串,过滤掉格式化的字符,请问有没有比较好的方法可以做,还有,到底有多少种这样的格式字符~~</P><P>谢谢回帖~</P> <P>是MTEXT吗?试试这个</P>
<P>Public Function GetMTextUnformatString(ByVal str As String) As String<BR>'程序功能:按给定的MText字符串返回可用的字符串<BR>On Error Resume Next<BR> Dim pStrs As New Collection<BR> Dim pStack As Collection<BR> Dim n As Integer<BR> Dim pStr As String<BR> Dim pEnd As String<BR> str = "{" & str & "}"<BR> Do While Len(str) > 0<BR> n = IIf(Left(str, 1) = "\", 2, 1)<BR> pStr = Left(str, n)<BR> '分割MText字符串为控制字符或单个字符<BR> If pStr = "}" Then<BR> '遇"}"时出栈,直到"{"<BR> pEnd = pStrs(pStrs.Count)<BR> Set pStack = New Collection<BR> pStack.Add "*TlsCad*"<BR> Do While pEnd <> "{"<BR> pStack.Add pEnd, , 1<BR> pStrs.Remove pStrs.Count<BR> pEnd = pStrs(pStrs.Count)<BR> Loop<BR> pStrs.Remove pStrs.Count<BR> pStack.Remove pStack.Count<BR> For Each i In GetRtfString(pStack)<BR> '调用GetRtfString函数返回可用的字符集合<BR> pStrs.Add i<BR> Next i<BR> Else<BR> '当前字符入栈<BR> pStrs.Add Left(str, n)<BR> End If<BR> str = Right(str, Len(str) - n)<BR> Loop<BR> For Each i In pStrs<BR> '合并字符集合为字符串<BR> If Len(i) = 2 Then<BR> '处理\、{、}<BR> GetMTextUnformatString = GetMTextUnformatString & Right(i, 1)<BR> Else<BR> GetMTextUnformatString = GetMTextUnformatString & i<BR> End If<BR> Next i<BR>End Function</P> <P>既然引用的,最好给个说明!</P>
<P>看看这个贴</P>
<P><A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=20768" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=20768</A></P> tjdxtm 发表于 2006-1-4 20:23
是MTEXT吗?试试这个
Public Function GetMTextUnformatString(ByVal str As String) As String'程序功能: ...
大神你这个是啥语言写的啊 你在VB版块问还问别人用啥语言写的,哈哈哈哈哈
页:
[1]