文本压缩???

fucool 2002-05-26 05:31:22
以下文本
aa,asasdsm,,sdmsd,s,,,,sdsms,,,,s,dsd,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

如何进行压缩

最好不用调DLL,且不用存为文本文件。
直接使用VB代码+算法。
压缩率越大越好

谢谢

...全文
117 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shawls 2002-05-27
  • 打赏
  • 举报
回复
有什么好的压缩算法么?






以上数据来自: SourceCode Explorer(源代码数据库)
当前版本: 1.0.690
作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: ShawFile@163.Net
QQ: 9181729
哈士奇打嘴仗 2002-05-27
  • 打赏
  • 举报
回复
不难:建立数组:(长度:lastNo)
aa,1
asasdsm,2
,
sdmsd,4
s,5
,,,
sdsms,9
,,,
s,13
dsd,14
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,lastNo
忽略一切 ,号
每个都转化成二进制,
Byte()取出,

下次给你vb代码.
现在下班了~~


fucool 2002-05-26
  • 打赏
  • 举报
回复
谢谢以上朋友,
我并不需要使用以上方式,我需要使用VB代码的算法。
wenw 2002-05-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim wzipexe As String ' winzip 执行文件的位置
Dim wsource As String ' 原始文件 (压缩前)
Dim wtarget As String ' 目地文件 (压缩后)
Dim wcmd As String ' Shell 指令
Dim retval As Double ' Shell 指令传回值

' Shell 指令
wzipexe = "C:\program files\winzip\WINzip32" ' winzip 执行文件的位置
wtarget = Text2.Text ' 目地文件 (压缩后)
wsource = Text1.Text ' 原始文件 (压缩前)
wcmd = wzipexe & " -a " & wtarget & " " & wsource
retval = Shell(wcmd, 6)


End Sub


关于WinRar的用法
  主要介绍以下如何在WinRar中用命令行来压缩和解压缩文件。

  压缩:WINRAR A [-switches] <Archive> [Files] [@File lists]

  例如你想把try.mdb压缩到C盘下,可以WINRAR A C:\try.rar C:\try.mdb

  解压缩:如果带目录解压缩

      WINRAR X [-switches] <Archive> [Files] [@File lists] [destionation folder\]

      如果在当前目录解压缩,即解压缩时不写目录名

      WINRAR E [-switches] <Archive> [Files] [@File lists] [destionation folder\]

  例如你想把try.rar解压缩到C盘下,可以WINRAR X C:\try.rar C:\try.mdb

三、一个例子
  在VB中新建一个工程,在Form1中添加两个按钮Command1、Command2和Command3,把他们的Caption属性分别设为"压缩文件"、"解压缩文件"和"传递文件"。按Command1时把文件try.mdb压缩成try.rar。

  Private Sub Command1_Click()

  Dim Rarexe As String 'WINRAR执行文件的位置

  Dim Source As String ' 压缩前的原始文件

  Dim Target As String ' 压缩后的目标文件

  Dim FileString as String 'Shell指令中的字符串

  Dim Result As Long

    Rarexe="C:\program files\winrar\winrar"

  Source="C:\try.mdb"

  Target="C:\try.rar"

  FileString = rarexe & " a " & Target & " " & Source

  Result = Shell(FileString, vbHide)

  End Sub

  解压的过程类似,按Command2可以把try.rar解压生成 try.mdb。在执行了上面的压缩过程后,可以删除文件try.mdb,来解压缩重新生成try.mdb。

  Private Sub Command2_Click()

  Dim Rarexe As String 'WINRAR执行文件的位置

  Dim Source As String ' 解压缩前的原始文件

  Dim Target As String ' 解压缩后的目标文件

  Dim FileString as String 'Shell指令中的字符串

  Dim Result As Long

    Rarexe="C:\program files\winrar\winrar"

  Source="C:\try.rar"

  Target="C:\try.mdb"

  FileString = rarexe & " X " & Source & " " & Target

  Result = Shell(FileString, vbHide)

  End Sub

  文件从一台计算机传输到另一台计算机前,应知道另一台计算机的名字,然后用FileCopy语句就可以了。假设要把压缩后try.rar传递到计算机名为"other"的共享目录"want"下。

  Private Sub Command3_Click()

  Dim SourceFile, DestinationFile

   SourceFile ="C:\try.rar " ' 指定源文件名。

   DestinationFile = "\\other\want\try.rar" ' 指定目的文件名。

   FileCopy SourceFile, DestinationFile ' 将源文件的内容复制到目的文件中。

  End Sub

  怎么样,十分简单吧?

Public Declare Function CompFile Lib "FSZLib" (ByVal OutputName As String, ByVal InputName As String, ByVal Level As Long, ByVal ProgressFunction As Long) As Long
Public Declare Function DecompFile Lib "FSZLib" (ByVal OutputName As String, ByVal InputName As String, ByVal ProgressFunction As Long) As Long
Global gPerCent As Integer
Enum fsCompressionLevel
fsCmpNoCompression
fsCmpFastest
fsCmpLev2 '选择压缩比
fsCmpLev3
fsCmpLev4
fsCmpLev5
fsCmpDefault
fsCmpLev7
fsCmpLev8
fsCmpMaximum
End Enum


Public Function 压缩(OutputFile As String, InputFile As String, Level As fsCompressionLevel) As Integer
压缩 = CompFile(OutputFile, InputFile, Level, AddressOf Progress)
End Function
Public Function 解压(OutputFile As String, InputFile As String) As Integer
解压 = DecompFile(OutputFile, InputFile, AddressOf Progress)
End Function


7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧