首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求救 一个英文对比问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lime9921
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-09 11:04:19 楼主
    昨天已经 弄了 但是总出错
    大侠们帮个忙吧 不知道错在哪里了。。。

    Private Sub Command1_Click()
    Dim str1 As String
    Dim str2 As String
    Dim arr1
    Dim arr2

    RichTextBox2.SelStart = 0
    RichTextBox2.SelLength = 0
    arr1 = Split(RichTextBox1.Text, " ")
    arr2 = Split(RichTextBox2.Text, " ")

    For i = 0 To UBound(arr2)
    If StrComp(arr1(i), arr2(i), vbBinaryCompare) <> 0 Then
    RichTextBox2.SelStart = InStr(1, RichTextBox2.Text, arr2(i), vbTextCompare) - 1
    RichTextBox2.SelLength = Len(arr2(i))
    RichTextBox2.SelColor = vbRed
    ElseIf StrComp(arr1(i), arr2(i), vbBinaryCompare) = 0 Then
    RichTextBox2.SelStart = 0
    RichTextBox2.SelLength = Len(RichTextBox2.Text)
    RichTextBox2.SelColor = vbBlack
    End If
    Next i

    End Sub

    richtextbox1 是英文原文
    richtextbox2 是用户输入的英文
    输入完后把不对的单词加红
    但是容易出错啊
    比如
    I am a student.(原文)
    I ans a student.(用户输入)
    这样显示没有错误
    I am a student(原文)
    I am a students(用户输入)
    这样就可以把students这个词加红
    这是为什么那 很迷惑~~~~

    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • junki
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-09 12:03:001楼 得分:0
    你的算法有一点问题
    VB code
    Private Sub Command1_Click() Dim str1 As String Dim str2 As String Dim arr1() As String Dim arr2() As String Dim i As Integer Dim startLen As Integer'保留下一个单词的开始位置 RichTextBox2.SelStart = 0 RichTextBox2.SelLength = 0 arr1 = Split(RichTextBox1.Text, " ") arr2 = Split(RichTextBox2.Text, " ") For i = 0 To UBound(arr2) If StrComp(arr1(i), arr2(i), vbBinaryCompare) <> 0 Then RichTextBox2.SelStart = InStr(1, RichTextBox2.Text, arr2(i), vbTextCompare) - 1 RichTextBox2.SelLength = Len(arr2(i)) RichTextBox2.SelColor = vbRed ElseIf StrComp(arr1(i), arr2(i), vbBinaryCompare) = 0 Then RichTextBox2.SelStart = startLen RichTextBox2.SelLength = Len(arr2(i)) RichTextBox2.SelColor = vbBlack End If startLen = startLen + Len(arr2(i)) + 1 Next i End Sub
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved