⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 在Jpeg中Huffman采用的是范式Huffman编码。经过查相关资料有两种不同说法
💻 FRM
📖 第 1 页 / 共 2 页
字号:
   Begin VB.CommandButton Command1 
      Caption         =   "编码"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   240
      TabIndex        =   7
      Top             =   2760
      Width           =   1335
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   6
      Left            =   9120
      TabIndex        =   6
      Text            =   "0.05"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   5
      Left            =   7920
      TabIndex        =   5
      Text            =   "0.08"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   4
      Left            =   6720
      TabIndex        =   4
      Text            =   "0.1"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   3
      Left            =   5520
      TabIndex        =   3
      Text            =   "0.12"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   2
      Left            =   4320
      TabIndex        =   2
      Text            =   "0.15"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   1
      Left            =   3120
      TabIndex        =   1
      Text            =   "0.2"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.TextBox Text1 
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   0
      Left            =   1920
      TabIndex        =   0
      Text            =   "0.3"
      Top             =   1680
      Width           =   1000
   End
   Begin VB.Label Label4 
      Caption         =   "字符个数"
      Height          =   495
      Left            =   240
      TabIndex        =   28
      Top             =   120
      Width           =   1215
   End
   Begin VB.Label Label3 
      Caption         =   "输入字符:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   240
      TabIndex        =   20
      Top             =   720
      Width           =   1455
   End
   Begin VB.Label Label2 
      Caption         =   "输入码值:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   1080
      TabIndex        =   17
      Top             =   3960
      Width           =   1455
   End
   Begin VB.Label Label1 
      Caption         =   "输入概率:"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   240
      TabIndex        =   8
      Top             =   1800
      Width           =   1455
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim a(12) As hafman
Dim x As Integer

Public Sub f()
Dim strl As String
Dim i, j As Integer

For i = 0 To x - 1
a(i).str = a(i).n
j = i

Do
j = a(j).pointer
a(i).str = a(i).str & a(j).n
Loop While j <> x * 2 - 2
Next

For i = 0 To x - 1
a(i).str = StrReverse(a(i).str)
Next
End Sub
Public Sub min()
Dim i, j As Integer
Dim min, p1, p2, p As Single           'p1 p2 是本次循环的最小的两个值
min = 1

For i = 0 To x * 2 - 2                   '标记每次循环都要去掉两个值 ,增添一个值,用j标记那个增添的值
If a(i).p = 1 Then
j = i: Exit For
End If
Next

For i = 0 To x * 2 - 3
If a(i).p < 1 And a(i).n = 2 And a(i).p < min Then
min = a(i).p
End If
Next

For i = 0 To x * 2 - 3
If a(i).p < 1 And a(i).n = 2 And a(i).p = min Then
a(i).n = 0
p1 = a(i).p
a(i).pointer = j
End If
Next

min = 1

For i = 0 To x * 2 - 3
If a(i).p < 1 And a(i).n = 2 And a(i).p < min Then
min = a(i).p
End If
Next

For i = 0 To x * 2 - 3
If a(i).p < 1 And a(i).n = 2 And a(i).p = min Then
a(i).n = 1
p2 = a(i).p
a(i).pointer = j
End If
Next

If j <> 0 Then
p = p1 + p2
a(j).p = p
End If
End Sub
Private Sub Command1_Click()
Dim i As Integer
x = Text6.Text
For i = 0 To x * 2 - 2              ' 把概率初始化为一
    a(i).p = 1
Next
For i = 0 To x * 2 - 2
    a(i).n = 2                         '把标记值初始化为二
Next

For i = 0 To x - 1                       '输入概率
    a(i).p = Text1(i).Text
Next

For i = 0 To x - 1                      '输入字符
    a(i).cha = Text5(i).Text
Next

For i = 0 To x - 1
min
Next

f
For i = 0 To x - 1
Text2(i).Text = a(i).str
Next
End Sub

Private Sub Command2_Click()
Dim str1 As String
str1 = Text3.Text
For i = 0 To x - 1
If str1 = a(i).str Then Text4.Text = a(i).cha
Next
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -