| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 809 人关注过本帖
标题:想做一个ASCII转换程序
只看楼主 加入收藏
gemsqs
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-1-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:9 
想做一个ASCII转换程序
想做一个ASCII转换程序
在Text1中输入一组任意的字符,在Text2将其转化为十进制ASCII码,但在显示的ASCII值是第一位转换的字符在输出的数据上+0第二位加1.…………第N位加N-1
Dim i As Integer
Dim j As Integer
Dim X As Integer
Dim a As Double, t1 As String, t2 As String
Dim t4 As String, t5 As String, t6 As String, t7 As String



Private Sub Command1_Click()
If Text1 <> "" Then
Timer1.Enabled = True
Else
MsgBox "请输入内容!", 48, "提示"
End If
End Sub

Private Sub Command2_Click()
If Text2 <> "" Then
Timer2.Enabled = True
Else
MsgBox "请输入内容!", 48, "提示"
End If
End Sub

Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 10 '设置转化每个数据的时间
Timer2.Enabled = False
Timer2.Interval = 10 '设置还原每个数据的时间
X = 0
End Sub

Private Sub Timer1_Timer()
t1 = Text1.Text
t2 = Text2.Text
t3 = Text3.Text
t4 = Text4.Text
'For j = 0 To 9
Text3.Text = Asc(Mid(Text1.Text, Len(Text1.Text) - i, 1) + 1)
Text2.Text = Text3 + "," + Text2
i = i + 1
If i >= Len(Text1.Text) Then
Timer1.Enabled = False
End If
'Next j
End Sub

Private Sub Timer2_Timer()
X = X + 1
a = Split(Text2.Text, ",")
Text3 = Chr(a(X))
Text4 = Text4 + Text3 '这里如果text4=text4+text3就会倒着输出
If X >= Len(Text1) Then
Timer2.Enabled = False
End If
End Sub
搜索更多相关主题的帖子: 十进制 Text1 Text2 
2014-01-02 14:59
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:7 
Dim Bl() As Byte
Dim i As Long
Dim s As String
Bl = StrConv(Text1.Text, vbFromUnicode)        '转字节数组

For i = 0 To UBound(Bl)
    s = s & Bl(i) + i & " "                    '拼起来  这步没看懂,还要还原成 ASCII 吗?????
Next i

Text2.Text = s

授人于鱼,不如授人于渔
早已停用QQ了
2014-01-03 09:02
seafish011
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:167
专家分:694
注 册:2011-11-8
收藏
得分:7 
没搞明你想问什么,如果你想问上面这段代码有什么问题,那就有两个:第一,t3没定义;第二,Text3.Text = Asc(Mid(Text1.Text, Len(Text1.Text) - i, 1) + 1)后面多了+1。
2014-01-03 09:03
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:0 
Dim Bl() As Byte
Dim i As Long
Dim s As String
Bl = StrConv(Text1.Text, vbFromUnicode)        '转字节数组

For i = 0 To UBound(Bl)
    Bl(i) = Bl(i) + i
Next i
s = StrConv(Bl, vbUnicode)

Text2.Text = s

这里还原成 ASCII 码的。没看懂你要做什么。。。。

授人于鱼,不如授人于渔
早已停用QQ了
2014-01-03 09:04
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
要是c代码 好简单

程序代码:
int main()
{
   char c;
   for(c=' ';c<='~';c++)
   {
       printf("%d\n",c);
   }
   return 0;
}

DO IT YOURSELF !
2014-01-03 09:28
gemsqs
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-1-2
收藏
得分:0 
一个ASCII转换的程式,但输出的值比原ASCII大1,且输出的每增加一位其值又加上相应的位数,如输入的每一位+0,第二位加1………第N位+N-1,举例:输入123ABC,输出为50,52,54,69,71,73.输入1111由输出为50,51,52,53,经常有混合输入但,输出均为十进制ASCII码
Dim i As Integer
Dim X As Integer
Dim a() As String
 
Private Sub Command1_Click()
If Text1 <> "" Then
i = 0
Text2 = ""
Timer1.Enabled = True
Else
MsgBox "请输入内容!", 48, "提示"
End If
End Sub
  
Private Sub Form_Load()
Timer1.Enabled = False
Timer1.Interval = 10
End Sub

Private Sub Timer1_Timer()
Text3.Text = Asc(Mid(Text1.Text, Len(Text1.Text) - i, 1) + 1) + Len(Text1.Text) - i - 1
Text2.Text = Text3 + "," + Text2
i = i + 1
If i >= Len(Text1.Text) Then
Timer1.Enabled = False
End If
End Sub

运行结果为:只能输入数字不能输入字母及符号,当输入9时出现49,应该是58的,恳求解决下为谢
2014-01-03 10:04
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
楼主是这个意思吗

不需要定时器吧

程序代码:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ln As Integer
        Dim i As Integer
        Dim index As Integer
        ln = Len(TextBox1.Text)
        index = 0
        For i = 1 To ln
            TextBox2.Text = TextBox2.Text + Str(Asc(Mid(TextBox1.Text, i, 1)) + index) + ","
            index = index + 1
        Next
    End Sub

DO IT YOURSELF !
2014-01-03 10:35
seafish011
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:167
专家分:694
注 册:2011-11-8
收藏
得分:0 
只能输入数字是因为你这句错了,我回复都说了-_-#
Text3.Text = Asc(Mid(Text1.Text, Len(Text1.Text) - i, 1) + 1) + Len(Text1.Text) - i - 1
如果你想每一位ascii码递加1那就改这句:
Text2.Text = cint(Text3)+i+1 & "," & Text2
2014-01-03 11:56
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4941
专家分:30047
注 册:2008-10-15
收藏
得分:0 
还是没看懂要求。。。
--------------------
如输入 :1111
输出:49 50 51 52

输入:123ABC
输出:49 51 53 68 70 72

输入:ABCDEFGHIJKLMNOPQRSTUVWXYZ
输出:65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115

是这样的吗?
我在二楼的代码就是这样输出的。
----------------------
123ABC
ASCII码是: 49 50 51 65 66 67
输入的每一位+0,第二位加1………第N位+N-1
49+0  50+1 51+2 65+3  66+4  67+5
结果:49 51 53 68 70 72  

------
哪种是符合输入标准的,彻底没看懂。

======================
如输入 :1111
输出:1234

输入:123ABC
输出:135DFH

输入:ABCDEFGHIJKLMNOPQRSTUVWXYZ
输出:ACEGIKMOQSUWY[]_acegikmoqs
我在四楼的代码就是这样输出的
--------------------
4楼的代码就是把显示ASCII ,重新转化为 字符了。

授人于鱼,不如授人于渔
早已停用QQ了
2014-01-03 14:36
gemsqs
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-1-2
收藏
得分:0 
谢谢,我在去试试,以后要多多请教你们。
2014-01-06 11:08
快速回复:想做一个ASCII转换程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012624 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved