要求:替换文件中以 L2字符开头的行中的全部空格为2(L2之前还有一空格)
以L10开头行中的-和. 为2(L10之前还有一空格)
例:将文件中L1开头行中间的空格全换为2
L0001 E0970600712271032NNG LDZ 09
L110510010100120 0482002201660000000000000000105110511051
在VB中如何实现啊
10 个解决方案
#1
怎么没人回复呢,高手们帮帮忙啊.我可以再加分的
#2
估计大家和我一样,听不懂
#3
...是不是我的脑袋不太好使了...说真的,没看明白你的意思...
#4
每个文件中有很多行,我的目标就是查找以L2开头的这一行,把这一行中间一段的"空格"替换成数字2,文件格式特殊,每行第一个字符为空格,中间有一段为空格,结尾有一段空格.
你用文本打开并选定其中一行,可以看出一行有80个字符.
例子:下划线处为空格,每行只有80个字符(包括空格),我要把L2这行中间这段空格替换成2,把L10开头的这行中的 . 和 - 替换成 3,也就是遍历整个文件,查找特殊位置,再进行替换
_L23213131_________4564564643453534_____
_L3321313198798978794564564643453534____
_L10.3-131319879___8794564564643453534as
你用文本打开并选定其中一行,可以看出一行有80个字符.
例子:下划线处为空格,每行只有80个字符(包括空格),我要把L2这行中间这段空格替换成2,把L10开头的这行中的 . 和 - 替换成 3,也就是遍历整个文件,查找特殊位置,再进行替换
_L23213131_________4564564643453534_____
_L3321313198798978794564564643453534____
_L10.3-131319879___8794564564643453534as
#5
材料:
1个 文件列表框 filelistbox
1个 命令按钮 commandbox
步骤:
>>复制楼主的几个文件到 c:\1\目录下[没有就建立一个名字为"1"的文件]
>>设计程序
>>放入2个控件
>>引用 "microsoft scripting runtime" 是引用系统操作文件夹或文件的一个对象
引用了它以后我们可以删除或建立文件或者文件夹
>>放入代码:
改动过的文件存储在了 c:\2\目录下
我要 50 分 ^_^
1个 文件列表框 filelistbox
1个 命令按钮 commandbox
步骤:
>>复制楼主的几个文件到 c:\1\目录下[没有就建立一个名字为"1"的文件]
>>设计程序
>>放入2个控件
>>引用 "microsoft scripting runtime" 是引用系统操作文件夹或文件的一个对象
引用了它以后我们可以删除或建立文件或者文件夹
>>放入代码:
Dim sfo As New FileSystemObject '引用后用这句声明出文件操作的一个对象
Private Sub Command1_Click()
If sfo.FolderExists("c:\2") = False Then sfo.CreateFolder ("c:\2")
'↑判断若c盘下没有名为2的文件夹则创建它
For i = 0 To File1.ListCount - 1 '循环文件列表下的所有文件
If InStr(File1.List(i), ".") = 0 Then '若发现没有文件后缀的就执行面代码
Open File1.Path & "\" & File1.List(i) For Input As #1 '打开
Do While EOF(1) = False '循环,没有读完就继续读
Line Input #1, a '按每行读取 存储到变量 a 中
If Left(a, 3) = " L2" Then '若是以 “ L2” 开头 则
For j = 1 To Len(a)
'↑循环次数为a的字符数 这个循环是为了确保所有的字符都被转换过
a = Replace(a, " ", "2") '替换条件为“ ”空格换为字串“2”
Next j
ElseIf Left(a, 4) = " L10" Then '若是以 " L10" 开头 则
For k = 1 To Len(a) '循环
a = Replace(a, ".", "2") '替换 “.” 为 “2”
a = Replace(a, "-", "2") '替换 “-” 为 “2”
Next k
Else
a = a '若不符合条件 就不用改它了
End If
s = s & a & vbCrLf '把读的每行[修改过的]存储在新的一个变量 S 中
Loop
Close #1 ' 关闭文件的读取
Open "c:\2\" & File1.List(i) For Output As #2
'↑output 写入文件 没有则自动建立该文件 当然我们要提供路径
Print #2, s '把 变量 S 写入 新的文件
Close #2 '关闭文件的写入
s = "" '清空变量 以便下次存储新的数据
End If
Next i
End Sub
Private Sub Form_Load()
File1.Path = "c:\1" '设置文件列表所要显示的文件夹
File1.Visible = False '不可见
End Sub
改动过的文件存储在了 c:\2\目录下
我要 50 分 ^_^
#6
5楼 (is me)
实验结果:
完全符合楼主要求
以" L2"字符开头的行中的全部空格替换为"2"
以" L10"开头行中的"-"和"."替换为"2"
实验结果:
完全符合楼主要求
以" L2"字符开头的行中的全部空格替换为"2"
以" L10"开头行中的"-"和"."替换为"2"
#7
好像是把一行的空格开始的后面的字符串都替换掉了
还有每行第一个空格不能替换,
还有每行第一个空格不能替换,
#8
cike_1111你的方案部分可行,但是你没注意每行有三段空格
行首一个,行中一段,行尾一段,我只要求换掉行中的一段空格,你是把一行中所有空格都换了
行首一个,行中一段,行尾一段,我只要求换掉行中的一段空格,你是把一行中所有空格都换了
#9
看过Cike_1111的帮助,再经过我修改,已能达到替换中间一段的空格,而不替换行首及行尾的空格了,
不使用循环(查出每行第二段空格有九个)将这段
For j = 1 To Len(a)
a = Replace(a, " ", "2")
Next j
改为
b = Replace(a, " ", "2", 2, 9)'从字符串的第二个字符开始连续替换九次
a = " " & b '然后再把行首的空格补上
再小小的修改就可以了,非常感谢大家!!!
不使用循环(查出每行第二段空格有九个)将这段
For j = 1 To Len(a)
a = Replace(a, " ", "2")
Next j
改为
b = Replace(a, " ", "2", 2, 9)'从字符串的第二个字符开始连续替换九次
a = " " & b '然后再把行首的空格补上
再小小的修改就可以了,非常感谢大家!!!
#10
我不知道帖子加分每次要100,我没那么多分,下次补偿你吧cike_1111
#1
怎么没人回复呢,高手们帮帮忙啊.我可以再加分的
#2
估计大家和我一样,听不懂
#3
...是不是我的脑袋不太好使了...说真的,没看明白你的意思...
#4
每个文件中有很多行,我的目标就是查找以L2开头的这一行,把这一行中间一段的"空格"替换成数字2,文件格式特殊,每行第一个字符为空格,中间有一段为空格,结尾有一段空格.
你用文本打开并选定其中一行,可以看出一行有80个字符.
例子:下划线处为空格,每行只有80个字符(包括空格),我要把L2这行中间这段空格替换成2,把L10开头的这行中的 . 和 - 替换成 3,也就是遍历整个文件,查找特殊位置,再进行替换
_L23213131_________4564564643453534_____
_L3321313198798978794564564643453534____
_L10.3-131319879___8794564564643453534as
你用文本打开并选定其中一行,可以看出一行有80个字符.
例子:下划线处为空格,每行只有80个字符(包括空格),我要把L2这行中间这段空格替换成2,把L10开头的这行中的 . 和 - 替换成 3,也就是遍历整个文件,查找特殊位置,再进行替换
_L23213131_________4564564643453534_____
_L3321313198798978794564564643453534____
_L10.3-131319879___8794564564643453534as
#5
材料:
1个 文件列表框 filelistbox
1个 命令按钮 commandbox
步骤:
>>复制楼主的几个文件到 c:\1\目录下[没有就建立一个名字为"1"的文件]
>>设计程序
>>放入2个控件
>>引用 "microsoft scripting runtime" 是引用系统操作文件夹或文件的一个对象
引用了它以后我们可以删除或建立文件或者文件夹
>>放入代码:
改动过的文件存储在了 c:\2\目录下
我要 50 分 ^_^
1个 文件列表框 filelistbox
1个 命令按钮 commandbox
步骤:
>>复制楼主的几个文件到 c:\1\目录下[没有就建立一个名字为"1"的文件]
>>设计程序
>>放入2个控件
>>引用 "microsoft scripting runtime" 是引用系统操作文件夹或文件的一个对象
引用了它以后我们可以删除或建立文件或者文件夹
>>放入代码:
Dim sfo As New FileSystemObject '引用后用这句声明出文件操作的一个对象
Private Sub Command1_Click()
If sfo.FolderExists("c:\2") = False Then sfo.CreateFolder ("c:\2")
'↑判断若c盘下没有名为2的文件夹则创建它
For i = 0 To File1.ListCount - 1 '循环文件列表下的所有文件
If InStr(File1.List(i), ".") = 0 Then '若发现没有文件后缀的就执行面代码
Open File1.Path & "\" & File1.List(i) For Input As #1 '打开
Do While EOF(1) = False '循环,没有读完就继续读
Line Input #1, a '按每行读取 存储到变量 a 中
If Left(a, 3) = " L2" Then '若是以 “ L2” 开头 则
For j = 1 To Len(a)
'↑循环次数为a的字符数 这个循环是为了确保所有的字符都被转换过
a = Replace(a, " ", "2") '替换条件为“ ”空格换为字串“2”
Next j
ElseIf Left(a, 4) = " L10" Then '若是以 " L10" 开头 则
For k = 1 To Len(a) '循环
a = Replace(a, ".", "2") '替换 “.” 为 “2”
a = Replace(a, "-", "2") '替换 “-” 为 “2”
Next k
Else
a = a '若不符合条件 就不用改它了
End If
s = s & a & vbCrLf '把读的每行[修改过的]存储在新的一个变量 S 中
Loop
Close #1 ' 关闭文件的读取
Open "c:\2\" & File1.List(i) For Output As #2
'↑output 写入文件 没有则自动建立该文件 当然我们要提供路径
Print #2, s '把 变量 S 写入 新的文件
Close #2 '关闭文件的写入
s = "" '清空变量 以便下次存储新的数据
End If
Next i
End Sub
Private Sub Form_Load()
File1.Path = "c:\1" '设置文件列表所要显示的文件夹
File1.Visible = False '不可见
End Sub
改动过的文件存储在了 c:\2\目录下
我要 50 分 ^_^
#6
5楼 (is me)
实验结果:
完全符合楼主要求
以" L2"字符开头的行中的全部空格替换为"2"
以" L10"开头行中的"-"和"."替换为"2"
实验结果:
完全符合楼主要求
以" L2"字符开头的行中的全部空格替换为"2"
以" L10"开头行中的"-"和"."替换为"2"
#7
好像是把一行的空格开始的后面的字符串都替换掉了
还有每行第一个空格不能替换,
还有每行第一个空格不能替换,
#8
cike_1111你的方案部分可行,但是你没注意每行有三段空格
行首一个,行中一段,行尾一段,我只要求换掉行中的一段空格,你是把一行中所有空格都换了
行首一个,行中一段,行尾一段,我只要求换掉行中的一段空格,你是把一行中所有空格都换了
#9
看过Cike_1111的帮助,再经过我修改,已能达到替换中间一段的空格,而不替换行首及行尾的空格了,
不使用循环(查出每行第二段空格有九个)将这段
For j = 1 To Len(a)
a = Replace(a, " ", "2")
Next j
改为
b = Replace(a, " ", "2", 2, 9)'从字符串的第二个字符开始连续替换九次
a = " " & b '然后再把行首的空格补上
再小小的修改就可以了,非常感谢大家!!!
不使用循环(查出每行第二段空格有九个)将这段
For j = 1 To Len(a)
a = Replace(a, " ", "2")
Next j
改为
b = Replace(a, " ", "2", 2, 9)'从字符串的第二个字符开始连续替换九次
a = " " & b '然后再把行首的空格补上
再小小的修改就可以了,非常感谢大家!!!
#10
我不知道帖子加分每次要100,我没那么多分,下次补偿你吧cike_1111