VB中怎样在一个已知的字符串中插入一个字符?

VB中怎样在一个已知的字符串中插入一个字符?,第1张

....很简单嘛,先将原字符串拆分成两半,加入后再合上即可。\x0d\x0aDim T As String\x0d\x0aDim K As String\x0d\x0a T = "abcdfghijklmn"\x0d\x0a K = Mid(T, 1, 4) &"e" &Mid(T, 5)\x0d\x0a\x0d\x0a这个代码是将字母e插在从左向右第5个位置上。\x0d\x0a原字符串是:\x0d\x0aabcdfghijklmn\x0d\x0a插入后的字符串是:\x0d\x0aabcdefghijklmn

分类: 电脑/网络 >>程序设计 >>其他编程语言

解析:

在VB6.0中, *** 作word,使用它强大的查找、替换、删除、复制、翦切功能。还可以把特定字符替换成图片。有了它你就可以使用数据库中的内容或图片文件替换word文件中的特定字符。

只要把下列内容复制到写字板中,另存为SetWord.cls文件,然后在把它添加到工程中,就可以使用了。

VERSION 1.0 CLASS

BEGIN

MultiUse = -1 'True

Persistable = 0 'NotPersistable

DataBindingBehavior = 0 'vbNone

DataSourceBehavior = 0 'vbNone

MTSTransactionMode = 0 'NotAnMTSObject

END

Attribute VB_Name = "SetWord"

Attribute VB_GlobalNameSpace = False

Attribute VB_Creatable = True

Attribute VB_PredeclaredId = False

Attribute VB_Exposed = False

Private mywdapp As Word.Application

Private mysel As Object

'属性值的模块变量

Private C_TemplateDoc As String

Private C_newDoc As String

Private C_PicFile As String

Private C_ErrMsg As Integer

Public Event HaveError()

Attribute HaveError.VB_Description = "出错时激发此事件.出错代码为ErrMsg属性"

'***************************************************************

'ErrMsg代码:1-word没有安装 2 - 缺少参数 3 - 没权限写文件

' 4 - 文件不存在

'

'***************************************************************

Public Function ReplacePic(FindStr As String, Optional Time As Integer = 0) As Integer

Attribute ReplacePic.VB_Description = "查找FindStr,并替换为PicFile所指向的图片文件,替换次数由time参数确定,为0时,替换所有"

'********************************************************************************

' 从Word.Range对象mysel中查找所有FindStr,并替换为PicFile图像

' 替换次数由time参数确定,为0时,替换所有

'********************************************************************************

If Len(C_PicFile) = 0 Then

C_ErrMsg = 2

Exit Function

End If

Dim i As Integer

Dim findtxt As Boolean

mysel.Find.ClearFormatting

mysel.Find.Replacement.ClearFormatting

With mysel.Find

.Text = FindStr

.Replacement.Text = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

mysel.HomeKey Unit:=wdStory

findtxt = mysel.Find.Execute(Replace:=True)

If Not findtxt Then

ReplacePic = 0

Exit Function

End If

i = 1

Do While findtxt

mysel.InlineShapes.AddPicture FileName:=C_PicFile

If i = Time Then Exit Do

i = i + 1

mysel.HomeKey Unit:=wdStory

findtxt = mysel.Find.Execute(Replace:=True)

Loop

ReplacePic = i

End Function

Public Function FindThis(FindStr As String) As Boolean

Attribute FindThis.VB_Description = "查找FindStr,如果模板中有FindStr则返回True"

If Len(FindStr) = 0 Then

C_ErrMsg = 2

Exit Function

End If

mysel.Find.ClearFormatting

mysel.Find.Replacement.ClearFormatting

With mysel.Find

.Text = FindStr

.Replacement.Text = ""

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

mysel.HomeKey Unit:=wdStory

FindThis = mysel.Find.Execute

End Function

Public Function ReplaceChar(FindStr As String, RepStr As String, Optional Time As Integer = 0) As Integer

Attribute ReplaceChar.VB_Description = "查找FindStr,并替换为RepStr,替换次数由time参数确定,为0时,替换所有"

'********************************************************************************

' 从Word.Range对象mysel中查找FindStr,并替换为RepStr

' 替换次数由time参数确定,为0时,替换所有

'********************************************************************************

Dim findtxt As Boolean

If Len(FindStr) = 0 Then

C_ErrMsg = 2

RaiseEvent HaveError

Exit Function

End If

mysel.Find.ClearFormatting

mysel.Find.Replacement.ClearFormatting

With mysel.Find

.Text = FindStr

.Replacement.Text = RepStr

.Forward = True

.Wrap = wdFindContinue

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchByte = True

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

If Time >0 Then

For i = 1 To Time

mysel.HomeKey Unit:=wdStory

findtxt = mysel.Find.Execute(Replace:=wdReplaceOne)

If Not findtxt Then Exit For

Next

If i = 1 And Not findtxt Then

ReplaceChar = 0

Else

ReplaceChar = i

End If

Else

mysel.Find.Execute Replace:=wdReplaceAll

End If

End Function

Public Function GetPic(PicData() As Byte, FileName As String) As Boolean

Attribute GetPic.VB_Description = "把图像数据PicData,存为PicFile指定的文件"

'********************************************************************************

' 把图像数据PicData,存为PicFile指定的文件

'********************************************************************************

On Error Resume Next

If Len(FileName) = 0 Then

C_ErrMsg = 2

RaiseEvent HaveError

Exit Function

End If

Open FileName For Binary As #1

If Err.Number <>0 Then

C_ErrMsg = 3

Exit Function

End If

'二进制文件用Get,Put存放,读取数据

Put #1, , PicData

Close #1

C_PicFile = FileName

GetPic = True

End Function

Public Sub DeleteToEnd()

Attribute DeleteToEnd.VB_Description = "删除从当前位置到结尾的所有内容"

mysel.EndKey Unit:=wdStory, Extend:=wdExtend

mysel.Delete Unit:=wdCharacter, Count:=1

End Sub

Public Sub MoveEnd()

Attribute MoveEnd.VB_Description = "光标移动到文档结尾"

'光标移动到文档结尾

mysel.EndKey Unit:=wdStory

End Sub

Public Sub GotoLine(LineTime As Integer)

mysel.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=LineTime, Name:=""

End Sub

Public Sub OpenDoc(view As Boolean)

Attribute OpenDoc.VB_Description = "打开Word文件,View确定是否显示Word界面"

On Error Resume Next

'********************************************************************************

' 打开Word文件,并给全局变量mysel赋值

'********************************************************************************

If Len(C_TemplateDoc) = 0 Then

mywdapp.Documents.Add

Else

mywdapp.Documents.Open (C_TemplateDoc)

End If

If Err.Number <>0 Then

C_ErrMsg = 4

RaiseEvent HaveError

Exit Sub

End If

mywdapp.Visible = view

mywdapp.Activate

Set mysel = mywdapp.Application.Selection

'mysel.Select

End Sub

Public Sub OpenWord()

On Error Resume Next

'********************************************************************************

' 打开Word程序,并给全局变量mywdapp赋值

'********************************************************************************

Set mywdapp = CreateObject("word.application")

If Err.Number <>0 Then

C_ErrMsg = 1

RaiseEvent HaveError

Exit Sub

End If

End Sub

Public Sub ViewDoc()

Attribute ViewDoc.VB_Description = "显示Word程序界面"

mywdapp.Visible = True

End Sub

Public Sub AddNewPage()

Attribute AddNewPage.VB_Description = "插入分页符"

mysel.InsertBreak Type:=wdPageBreak

End Sub

Public Sub WordCut()

Attribute WordCut.VB_Description = "剪切模板所有内容到剪切板"

'保存模板页面内容

mysel.WholeStory

mysel.Cut

mysel.HomeKey Unit:=wdStory

End Sub

Public Sub WordCopy()

Attribute WordCopy.VB_Description = "拷贝模板所有内容到剪切板"

mysel.WholeStory

mysel.Copy

mysel.HomeKey Unit:=wdStory

End Sub

Public Sub WordDel()

mysel.WholeStory

mysel.Delete

mysel.HomeKey Unit:=wdStory

End Sub

Public Sub WordPaste()

Attribute WordPaste.VB_Description = "拷贝剪切板内容到当前位置"

'插入模块内容

mysel.Paste

End Sub

Public Sub CloseDoc()

Attribute CloseDoc.VB_Description = "关闭Word文件模板"

'********************************************************************************

' 关闭Word文件模本

'********************************************************************************

On Error Resume Next

mywdapp.ActiveDocument.Close False

If Err.Number <>0 Then

C_ErrMsg = 3

Exit Sub

End If

End Sub

Public Sub QuitWord()

'********************************************************************************

' 关闭Word程序

'********************************************************************************

On Error Resume Next

mywdapp.Quit

If Err.Number <>0 Then

C_ErrMsg = 3

Exit Sub

End If

End Sub

Public Sub SavetoDoc()

Attribute SavetoDoc.VB_Description = "保存当前文档为FileName指定文件"

On Error Resume Next

'并另存为文件FileName

If Len(C_newDoc) = 0 Then

C_ErrMsg = 2

RaiseEvent HaveError

Exit Sub

End If

mywdapp.ActiveDocument.SaveAs (C_newDoc)

If Err.Number <>0 Then

C_ErrMsg = 3

RaiseEvent HaveError

Exit Sub

End If

End Sub

Public Property Get TemplateDoc() As String

Attribute TemplateDoc.VB_Description = "模板文件名."

TemplateDoc = C_TemplateDoc

End Property

Public Property Let TemplateDoc(ByVal vNewValue As String)

C_TemplateDoc = vNewValue

End Property

Public Property Get newdoc() As String

Attribute newdoc.VB_Description = "执行CloseDoc方法时,将模板文件另存为此文件名指定的新文件.如果不指定,在执行CloseDoc方法时,将产生一个错误"

newdoc = C_newDoc

End Property

Public Property Let newdoc(ByVal vNewValue As String)

C_newDoc = vNewValue

End Property

Public Property Get PicFile() As String

Attribute PicFile.VB_Description = "图像文件名"

PicFile = C_PicFile

End Property

Public Property Let PicFile(ByVal vNewValue As String)

C_PicFile = vNewValue

End Property

Public Property Get ErrMsg() As Integer

Attribute ErrMsg.VB_Description = "错误信息.ErrMsg代码: 1-word没有安装 2-缺少参数 3-没权限写文件 4-文件不存在"

ErrMsg = C_ErrMsg

End Property

VB6.0可通过使用Mid函数、InStr 函数和&运算符等来实现一个已知的字符串中插入一个字符。

Mid 函数, 返回 Variant (String),其中包含字符串中指定数量的字符。

InStr 函数,返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

&运算符,用来强制两个表达式作字符串连接。

以下代码在字符串“VB中怎样在一个已知的字符串中插入一个字符?"的第一个中字后插入一个逗号“,”。

Option Explicit

    Dim strSj As String

    Dim strSj1 As String

    Dim s As String

    Dim i As Long

    

Private Sub Command1_Click()

    i = InStr(Text1, "中")

    Text2 = Mid(Text1, 1, i) & s & Mid(Text1, 4)

End Sub

Private Sub Form_Load()

    Text1 = "VB中怎样在一个已知的字符串中插入一个字符?"

    s = ","

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11779374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存