当前位置:编程学习 > VB >>

急急急!VB答案!高手请进!

要求在窗体上建立一个文本框和一个按钮,按照标题为倒序打印,用户可以在文本框中输入文字内容,当用户单击按钮时,程序首先将文本框的字符串中的最大字母和最小字母删除,然后在窗体上打印出文本框中剩余内容的倒序,如文本框中字符串为debctymd,则要首先删除最小字母b,最大字母y,然后打印出dmtced
追问:1050256043@qq.com

答案:

你在窗体上建立一个文本框text1,建立一个按钮Command1,然后Command1放如下代码即可:

Dim i As Long, j As Long
Dim strMax As String, strMin As String
    i = Len(Text1)  '得到文本长度
    If i = 0 Then Exit Sub  '长度为0不处理
    Me.Cls
   
    strMax = Mid(Text1, 1, 1)   '最大字母默认第一个
    strMin = Mid(Text1, 1, 1)   '最小字母默认第一个
    For j = 2 To i
        '循环对比最大最小字母并赋值
        If strMax < Mid(Text1, j, 1) Then strMax = Mid(Text1, j, 1)
        If strMin > Mid(Text1, j, 1) Then strMin = Mid(Text1, j, 1)
    Next
   
    '替换并打印到窗体
    Text1.Tag = Text1
    Text1.Tag = Replace(Text1.Tag, strMax, "")
    Text1.Tag = Replace(Text1.Tag, strMin, "")
    Print StrReverse(Text1.Tag)

Dim Sz(), Sz1() As String, s As String, Min, Max As Integer


Private Sub Command1_Click()  '对不起晚上写程序思路有点乱代码或许不够优化
Form1.Print Clear             '清理窗体

ReDim Sz(Len(Text1.Text))       '重新定义数组个数
ReDim Sz1(Len(Text1.Text) - 2) '上一个数组减2
For i = 0 To Len(Text1.Text) - 1           '下面是把每个字符取出来放在数组里
    Sz(i) = Mid(UCase((Text1.Text)), i + 1, 1)
Next
Min = Asc(Sz(0))                           '设置最小和最大
Max = Asc(Sz(0))

For i = 1 To Len(Text1.Text) - 1              '下面是取出最小最大
        If Min > Asc(Sz(i)) Then Min = Asc(Sz(i))
        If Max < Asc(Sz(i)) Then Max = Asc(Sz(i))
Next
Dim MinI, MaxI As Boolean                       '这个就不说了 判断是否已经有一个最小 如果有2个最小的 就取一个就行
MinI = False: MaxI = False
For i = 0 To Len(Text1.Text) - 1
    If Asc(Sz(i)) = Min And Not MinI Then       '把最小或最大指定为空
        Sz(i) = ""
        MinI = True
        Exit For
    End If
    If Asc(Sz(i)) = Max And Not MaxI Then
        Sz(i) = ""
        MaxI = True
    End If
Next


For i = 0 To Len(Text1.Text) - 1       '删除最大最小(为空的数据) 重新给数组1
    If Sz(i) <> "" Then
        Sz1(j) = Sz(i)
        j = j + 1
    End If
Next

 

For i = 0 To UBound(Sz1()) - 1          '这就没啥说的了 就是个重新排序
  For j = i To UBound(Sz1()) - 1
    If Asc(Sz1(i)) < Asc(Sz1(j)) Then
        k = Sz1(i): Sz1(i) = Sz1(j): Sz1(j) = k
    End If
  Next
    Form1.Print Sz1(i)                 '输出
Next

End Sub

----------------------------------------------------------------------------------------------------------------------------------

需要代码请留下邮箱

上一个:写WG需要什么API和知识--VB
下一个:vb搞手如何让txet3实现ctrl+a

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,