有很多软件(大多是游戏),可以将很多声音文件、图片文件放到一个大的文件中,用的时候从这个大文件中读取,请问在vb中怎样办????/

解决方案 »

  1.   

    如下方法保存:(将下面得代码拷入一个*.TXT文档,保存为*.Frm)
    VERSION 5.00
    Begin VB.Form Form1 
       Caption         =   "Form1"
       ClientHeight    =   6795
       ClientLeft      =   60
       ClientTop       =   450
       ClientWidth     =   8175
       LinkTopic       =   "Form1"
       ScaleHeight     =   6795
       ScaleWidth      =   8175
       StartUpPosition =   3  '窗口缺省
       Begin VB.TextBox Text1 
          Height          =   435
          Left            =   1680
          TabIndex        =   4
          Text            =   "要保存得文字"
          Top             =   4560
          Width           =   4095
       End
       Begin VB.PictureBox Picture1 
          Height          =   4350
          Left            =   1680
          Picture         =   "Form1.frx":0000
          ScaleHeight     =   4290
          ScaleWidth      =   4050
          TabIndex        =   3
          ToolTipText     =   "要保存得图片"
          Top             =   120
          Width           =   4110
       End
       Begin VB.CommandButton Command3 
          Caption         =   "读取"
          Height          =   555
          Left            =   120
          TabIndex        =   2
          Top             =   1440
          Width           =   1455
       End
       Begin VB.CommandButton Command2 
          Caption         =   "清空"
          Height          =   555
          Left            =   120
          TabIndex        =   1
          Top             =   780
          Width           =   1455
       End
       Begin VB.CommandButton Command1 
          Caption         =   "保存"
          Height          =   555
          Left            =   120
          TabIndex        =   0
          Top             =   120
          Width           =   1455
       End
    End
    Attribute VB_Name = "Form1"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    Option ExplicitConst sCombinedFile = "E:\combined.dat"
    Const sTmpPix = "E:\picxtract.bmp"
    Private Sub Command1_Click()   Dim nImageSize As Long
       Dim hFile As Long  'save the picture portion as the first entry
      'in the "combined file"
       SavePicture Picture1.Picture, sCombinedFile
        
      'Open the combined file for append in order to
      'add the text to file
       hFile = FreeFile
       
       Open sCombinedFile For Binary As #hFile
             
         'Retrieve the size of the image into a
         'variable for later use, then append the
         'text into the same file.
          nImageSize = LOF(hFile)
          Seek #hFile, nImageSize + 1
          Put #hFile, , Text1.Text     'The file now contains both the image
         'and text file. As a final step, we
         'save the length of image retrieved
         'above as the last item in the file.
          Seek #hFile, LOF(hFile)
          Put #hFile, LOF(hFile) + 1, nImageSize
        
       Close #hFile
        
    End Sub
    Private Sub Command2_Click()   Set Picture1.Picture = Nothing
       Text1.Text = ""
        
    End Sub
    Private Sub Command3_Click()   Dim nImageSize As Long
       Dim hFile As Long
       Dim hFileOut As Long
       Dim PicData() As Byte
        
      'First step in the extraction process is to
      'obtain the length of image portion saved
      'as the last item in the file.
       hFile = FreeFile
       Open sCombinedFile For Binary As #hFile
       
         'move to the LOF - 3 and load the
         'saved image size
          Seek #hFile, LOF(hFile) - 3
          Get #hFile, , nImageSize
          
         'with the image size, create a byte array
         'large enough to accommodate the image
          ReDim PicData(0 To nImageSize - 1) As Byte
        
         'and load the image data, repositioning the
         'file pointer to the beginning first
          Seek #hFile, 1
          Get #hFile, , PicData()
             
         'write the pix to a temporary file in
         'order to use the LoadPicture method.
          hFileOut = FreeFile
          Open sTmpPix For Binary As #hFileOut
             Put #hFileOut, , PicData()
          Close #hFileOut
        
         'load the text portion to the textbox. The
         'text begins immediately after the image, and
         'extends for the file length minus the trailing
         '4 bytes for the Long that stored the image size.
          Seek #hFile, nImageSize + 1
          Text1.Text = Input(LOF(hFile) - nImageSize - 4, hFile)
          
       Close #hFile
       
      'Load the saved image from the tmp file
      'and kill it
       Picture1 = LoadPicture(sTmpPix)
       Kill sTmpPix
        
    End Sub
      

  2.   

    str="c:/aa.txt"
    lngtmp=freefile()
    dim byt() as byte
    dim lngsize as long
    open str for binary access read as #lngtmp
       lngsize=lof(1)
       redim byt(lngszie) as byte
       put #lngtmp,,byt
    close #lngtmp
    那byt中存的就是文件信息,不过是二进制的
    如果要不是二进制的可以这样
    dim strfile as string
      lngtmp=freefile() 
      open str for binary access read as #lngtmp
       strfile=cstr(input(lof(lngtmp),lngtmp))
      close #lngtmp
     这样strfile中存的就是该文件的信息