Medic84
19-12-2010, 19:10
Здравствуйте. Потихоньку пересаживаюсь на более нормальный ЯП, а именно на Visual Basic.
Установил Visual Studio 2010, начал осваивать с перевода программ с одного языка на другой (простеньких программ)
Встал в ступор с CreateObject
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ZipCreate("C:\VB.zip")
Zip_Add("C:\VB.zip", "C:\test.txt")
End Sub
Sub Zip_DllChk()
If Not My.Computer.FileSystem.FileExists("C:\Windows\system32\zipfldr.dll") Then MsgBox("DLL не найден")
End Sub
Sub ZipCreate(ByVal sPath As String)
If Len(Dir(sPath)) > 0 Then Kill(sPath)
My.Computer.FileSystem.WriteAllText(sPath, Chr(80) & Chr(75) & Chr(5) & Chr(6) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0), False)
End Sub
Sub Zip_Add(ByVal hZipFile As String, ByVal hFile2Add As String)
Dim oZip As Object
Zip_DllChk()
oZip = CreateObject("Shell.Application")
oZip.Namespace(hZipFile).CopyHere(hFile2Add)
While 1
If oZip.Namespace(hZipFile).Items.Count = 2 Then Exit While
End While
End Sub
Sub Zip_AddFolder(ByVal hZipFile As String, ByVal hFolder As String)
Dim oZip As Object
Zip_DllChk()
oZip = CreateObject("Shell.Application")
oZip.Namespace(hZipFile).CopyHere(oZip.Namespace(hFolder))
End Sub
End Class
Первая проблема заключается в создании архива. Архив создается, но видимо - не правильно ("Неожиданный конец архива")
Вторая же проблема заключается в строчке
oZip.Namespace(hZipFile).CopyHere(hFile2Add)
Компилятор пишет "Не задана переменная объекта или переменная блока With"
На другом ЯП подобный код отрабатывает идеально.
Помогите пожалуйста
Установил Visual Studio 2010, начал осваивать с перевода программ с одного языка на другой (простеньких программ)
Встал в ступор с CreateObject
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ZipCreate("C:\VB.zip")
Zip_Add("C:\VB.zip", "C:\test.txt")
End Sub
Sub Zip_DllChk()
If Not My.Computer.FileSystem.FileExists("C:\Windows\system32\zipfldr.dll") Then MsgBox("DLL не найден")
End Sub
Sub ZipCreate(ByVal sPath As String)
If Len(Dir(sPath)) > 0 Then Kill(sPath)
My.Computer.FileSystem.WriteAllText(sPath, Chr(80) & Chr(75) & Chr(5) & Chr(6) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0) & Chr(0), False)
End Sub
Sub Zip_Add(ByVal hZipFile As String, ByVal hFile2Add As String)
Dim oZip As Object
Zip_DllChk()
oZip = CreateObject("Shell.Application")
oZip.Namespace(hZipFile).CopyHere(hFile2Add)
While 1
If oZip.Namespace(hZipFile).Items.Count = 2 Then Exit While
End While
End Sub
Sub Zip_AddFolder(ByVal hZipFile As String, ByVal hFolder As String)
Dim oZip As Object
Zip_DllChk()
oZip = CreateObject("Shell.Application")
oZip.Namespace(hZipFile).CopyHere(oZip.Namespace(hFolder))
End Sub
End Class
Первая проблема заключается в создании архива. Архив создается, но видимо - не правильно ("Неожиданный конец архива")
Вторая же проблема заключается в строчке
oZip.Namespace(hZipFile).CopyHere(hFile2Add)
Компилятор пишет "Не задана переменная объекта или переменная блока With"
На другом ЯП подобный код отрабатывает идеально.
Помогите пожалуйста