以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]startindex不能小于0 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118147) |
||||
-- 作者:天一生水 -- 发布时间:2018/4/26 8:27:00 -- [求助]startindex不能小于0 上传文件时,提示“startindex不能小于0”。 上传的实例中附有4个word文档,没发现格式上有什么不同。但有两个文档在上传的时报错,请老师帮助测试,是什么原因? 谢谢!
|
||||
-- 作者:有点甜 -- 发布时间:2018/4/26 9:25:00 -- \'\'\' Dim dr As DataRow = e.DataRow Dim file = e.SourceFolder & "\\" & e.filename Select Case e.DataCol.Name Case "上传文件" e.Subfolder = e.DataRow("承办人") \'将此文件存放在目录名为承办人名称的子目录中. Dim app As New MSWord.Application try Dim doc = app.Documents.Open(file) Dim count = Doc.Characters.Count Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count) Dim str As String = rng.text \'For Each s As String In str \'output.show(s & " " & Asc(s)) \'Next msgbox(str) \'清除段落空行,得到一个不含空行的集合 Dim idx = str.IndexOf("书 记 员") If idx < 0 Then idx = str.IndexOf("书 记 员".replace(" ", chr(-24159))) \'msgbox(idx) Dim idx2 = str.SubString(idx).indexof(Chr(13)) \'msgbox(idx2) If idx2 > -1 Then str = str.SubString(0, idx+idx2) End If Dim ary() = str.replace(chr(10), "").split(new Char() {chr(13),chr(11)}) Dim lst As new List(Of String) For Each s As String In ary If s.trim() > "" AndAlso s.contains("受理费") = False AndAlso s.contains("终审") = False AndAlso s.contains("不服") = False Then lst.add(s) End If Next app.Quit catch ex As exception msgbox(ex.message) app.Quit End try End Select |
||||
-- 作者:天一生水 -- 发布时间:2018/4/26 11:42:00 -- 谢谢老师! "530"这个文档可以了,“1065”这个文档还报错。 另外,"书 记 员"这三个字的字间距是一个空格吧?
If idx < 0 Then idx = str.IndexOf("书 记 员".replace(" ", chr(-24159))) |
||||
-- 作者:有点甜 -- 发布时间:2018/4/26 12:33:00 -- \'\'\' Dim dr As DataRow = e.DataRow Dim file = e.SourceFolder & "\\" & e.filename Select Case e.DataCol.Name Case "上传文件" e.Subfolder = e.DataRow("承办人") \'将此文件存放在目录名为承办人名称的子目录中. Dim app As New MSWord.Application try Dim doc = app.Documents.Open(file) Dim count = Doc.Characters.Count app.ActiveWindow.Selection.WholeStory app.ActiveWindow.Selection.Copy \'Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count) Dim str As String = ClipBoard.GetText ‘For Each s As String In str ’ output.show(s & " " & Asc(s)) ‘Next \'msgbox(str) \'清除段落空行,得到一个不含空行的集合 Dim idx = str.IndexOf("书 记 员") If idx < 0 Then idx = str.IndexOf("书 记 员".replace(" ", chr(-24159))) \'msgbox(idx) Dim idx2 = str.SubString(idx).indexof(Chr(13)) \'msgbox(idx2) If idx2 > -1 Then str = str.SubString(0, idx+idx2) End If Dim ary() = str.replace(chr(10), "").split(new Char() {chr(13),chr(11)}) Dim lst As new List(Of String) For Each s As String In ary If s.trim() > "" AndAlso s.contains("受理费") = False AndAlso s.contains("终审") = False AndAlso s.contains("不服") = False Then lst.add(s) End If Next app.Quit catch ex As exception msgbox(ex.message) app.Quit End try End Select |
||||
-- 作者:天一生水 -- 发布时间:2018/4/28 16:39:00 -- 甜老师,有些文书不是"书 记 员",而是"代理书记员",楼上的代码,我加了半句加黑的代码,但是不起作用,请老师看看怎么办? 谢谢! Dim idx = str.IndexOf("书 记 员") ... [此贴子已经被作者于2018/4/28 16:45:59编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/4/28 17:07:00 -- Dim idx = str.IndexOf("书 记 员") If idx < 0 Then idx = str.IndexOf("代理书 记 员") |