我的代码很混乱的‘text1为正常文本框
'text2为过渡用的文本框
On Error Resume Next
Dim a() As String
Dim i, j, n
Dim k As Boolean, o() As Boolean
a = Split(Text1.Text, vbCrLf)
k = True
Text2.Text = ""
ReDim o(UBound(a))
For n = 0 To UBound(a)
o(n) = True
Next nFor i = 0 To UBound(a)
k = True
If a(i) = "" Then k = False
For j = 1 To Len(a(i))
b = b & " "
Next j
If a(i) = b Then k = False
b = ""
If k = False Then o(i) = False
If i = UBound(a) Then
If o(i) = True Then Text2.Text = Text2.Text & a(i)
Else
If o(i) = True Then Text2.Text = Text2.Text & a(i) & vbCrLf & vbCrLf
End If
Next i
'仅去掉每一行前面的空格
Dim ary() As String
Dim i2 As Long
ary = Split(Me.Text2.Text, vbCrLf)
Text2 = ""
For i2 = LBound(ary) To UBound(ary)
Text2 = Text2 & LTrim(ary(i2)) & vbCrLf
Next
'每行加两个汉字全角空格
Dim s As String
s = Text2.Text
If Check1.Value = 1 Then
s = Replace(" " & s, vbLf, vbLf & " ") '字符串中,是两个空格
Else
s = Replace(" " & s, vbLf, vbLf & " ") '字符串中,是两个空格
End If
Text1.Text = s
'text2为过渡用的文本框
On Error Resume Next
Dim a() As String
Dim i, j, n
Dim k As Boolean, o() As Boolean
a = Split(Text1.Text, vbCrLf)
k = True
Text2.Text = ""
ReDim o(UBound(a))
For n = 0 To UBound(a)
o(n) = True
Next nFor i = 0 To UBound(a)
k = True
If a(i) = "" Then k = False
For j = 1 To Len(a(i))
b = b & " "
Next j
If a(i) = b Then k = False
b = ""
If k = False Then o(i) = False
If i = UBound(a) Then
If o(i) = True Then Text2.Text = Text2.Text & a(i)
Else
If o(i) = True Then Text2.Text = Text2.Text & a(i) & vbCrLf & vbCrLf
End If
Next i
'仅去掉每一行前面的空格
Dim ary() As String
Dim i2 As Long
ary = Split(Me.Text2.Text, vbCrLf)
Text2 = ""
For i2 = LBound(ary) To UBound(ary)
Text2 = Text2 & LTrim(ary(i2)) & vbCrLf
Next
'每行加两个汉字全角空格
Dim s As String
s = Text2.Text
If Check1.Value = 1 Then
s = Replace(" " & s, vbLf, vbLf & " ") '字符串中,是两个空格
Else
s = Replace(" " & s, vbLf, vbLf & " ") '字符串中,是两个空格
End If
Text1.Text = s
解决方案 »
- 如何判断ACCESS数据库中存在指定的表?
- 生成窗体问题
- 做了一个自定义文本框控件,发现新问题,就是在窗体中引用时无法改变控件的大小.如何办?
- 控件的问题
- rpt 是什么文件 用什么能打开?!
- ///谁看过王国荣VB6 API编程这本书,里面关于设置字体部分有问题请教大侠,很
- 各位高手帮帮我!!在其它机器运行时数据显示不出来...
- 如何让VB程序在WINDOWNS启动时获得焦点?
- 怎样立即取消异步Ado连接?
- 在新建窗体上放上Combo1,Combo2,贴上以下代码,运行后进入死循环!!!!!!!!!!!!!!
- vb treeview列数据库数据作为节点问题,如何列出符合的所有数据作节点
- NetData_Server.ocx + ACCESS 数据库访问的安全性
On Error Resume Next
Dim a() As String
Dim bHasContext As Boolean '前面是否已经出现了非空行,决定插入空格'
Dim strPrefix As String '行前空格'
Dim i As Long bHasContext = False
strPrefix = IIf(Check1.Value, " ", " ") a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a)
a(i) = LTrim$(a(i)) '先去空格'
Next For i = 0 To UBound(a)
If LenB(a(i)) <> 0 Then '去了空格就可以直接判断空行了'
a(i) = IIf(bHasContext, vbCrLf & vbCrLf, "") & strPrefix & a(i)
bHasContext = True
End If
Next Text1.Text = Join(a, "") 'Delimiter 无内容,无论拼多少个空行还是没内容'
End Sub
谢谢您的回复,不过这代码最后的排版每段开头没有加两个全角空格,中文排版时,我想在每个文字段前面两个全角空格,而纯粹用来分割两个段之间添加的空行不要加空格。aabb
应该是变成
aa 【全角空格全角空格aa】
【空行】
bb 【全角空格全角空格bb】
比如有一个文章:用你的代码排出来后是这样
\\\\\\\\\\\\
马上就要开学了,我家却招了贼。偷走了笔记本一台,钱包里钱拿走,卡都留下了,还偷了书包。估计小偷装笔记本电脑,问题是你偷书包就偷书包,还把暑假作业留下。
\\\\\\\\\\\\
但正常来说,中文每段前面应该要加两个空格的【全角空格】,所以排版应该是下面这样:
\\\\\\\\\\\\
马上就要开学了,我家却招了贼。偷走了笔记本一台,钱包里钱拿走,卡都留下了,还偷了书包。 估计小偷装笔记本电脑,问题是你偷书包就偷书包,还把暑假作业留下。
\\\\\\\\\\\\
实际上就是http://www.pc354.com/soft/paiban.html 这个网址排出来的效果,不过这个网址中排的效果存在一个问题,就是每个用来分割的空行上,也加了两个 全角空格,其实是没必要的。
\\\\\\\\\\\\
马上就要开学了,我家却招了贼。偷走了笔记本一台,钱包里钱拿走,卡都留下了,还偷了书包。
估计小偷装笔记本电脑,问题是你偷书包就偷书包,还把暑假作业留下。
\\\\\\\\\\\\
Check1 选中时,输出
马上就要开学了,我家却招了贼。偷走了笔记本一台,钱包里钱拿走,卡都留下了,还偷了书包。 估计小偷装笔记本电脑,问题是你偷书包就偷书包,还把暑假作业留下。
有什么问题?
代码只有我3楼的代码,再试试。
哦,不好意思,没注意到里面还用到了个check,加了,完全就是我要的效果,真的是非常感谢您的热情回复!
嘿嘿,那个check是我在发这贴时临时加的,搞个代码进去了,把这个给忘了,没想到您这么细心,把这个功能也加上了!