Jar архивы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Jar архивы

Сообщение exp. » 08.01.2007 (Пн) 19:07

Подскажите как через VB выдрать файл, который упакован в jar архив и лежит(файл) по адресу archive.jar/META-INF/MANIFEST.MF ??
То есть тупо нужен MANIFEST.MF.

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 08.01.2007 (Пн) 19:19

Ну ясное дело - найти библиотеку для работы с архивами JAR или программу - которой через командную строку передать путь для временной распаковки а потом взять этот файл... можно кажется и RAR посмотреть насчет командной строки...
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 08.01.2007 (Пн) 20:17

мне нужен именно 1й вариат т.е.найти библиотеку для работы с архивами JAR.
нужно поискать.
ну если кто знает где есть, не полеитесь подсказать.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.01.2007 (Пн) 20:59

Наверное, есть ещё люди, которые не знают, что jar - это zip...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 08.01.2007 (Пн) 21:36

GSerg
thank

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 09.01.2007 (Вт) 5:44

exp. писал(а):мне нужен именно 1й вариат т.е.найти библиотеку для работы с архивами JAR.
нужно поискать.
ну если кто знает где есть, не полеитесь подсказать.


Да нафига? Никогда не ищу библиотек. Как правило у всех архиваторов есть консольные версии работающие с командной строкой. Консольную программу можно запускать через CreateProcess без создания окна. Что еще надо-то? Мне всегда этого хватало...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 09.01.2007 (Вт) 10:44

охота все сделать силами программы, без обращения во вне.
вот нашел ресурс http://zlib.net/manual.html
помогоите разобраться.(нужно только uncompress)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 09.01.2007 (Вт) 11:29

exp. писал(а):охота все сделать силами программы, без обращения во вне.
вот нашел ресурс http://zlib.net/manual.html
помогоите разобраться.(нужно только uncompress)


А компонент - это не обращение вовне? Также отдельный файл.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 09.01.2007 (Вт) 11:59

Andrey Fedorov писал(а):Да нафига? Никогда не ищу библиотек. Как правило у всех архиваторов есть консольные версии работающие с командной строкой. Консольную программу можно запускать через CreateProcess без создания окна. Что еще надо-то? Мне всегда этого хватало...

Прогрессбар, наверное, не прикрутишь к консольному архиватору...
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 09.01.2007 (Вт) 12:13

VVitafresh писал(а):Прогрессбар, наверное, не прикрутишь к консольному архиватору...


Можно AVI-шку показывающую что файл распаковывается выводить, к примеру. Если это вообще нужно, конечно.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 09.01.2007 (Вт) 18:25

так ничего и не получилось

по совету tyomitch'a нашел zlibwapi.dll и примеры тоже есть
но так ничего и не понял.

как использовать для разорхивации эту dll?

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 10.01.2007 (Ср) 11:27

exp.
гугл в помошь:
http://www.google.com/search?client=ope ... 8&oe=utf-8

ActiveZip :) не плохой компонент... одно время его использовал...
ЗЫ есть примеры на VB

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 10.01.2007 (Ср) 13:00

ActiveZipschalexey

спасибо с ним действительно легко работать
и разобраться в нем не составит труда даже такому новичку как я. :)

и последнее, чего мне е хватало:
как сделать Drag&Drop файлов на форму,
чтобы адрес возвращялся переменной.

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 10.01.2007 (Ср) 14:46

exp.
Ставишь у формы параметр OLEDropMode = Manual

потом в событии формы:
Код: Выделить всё

Private Sub Form_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
FileName=data.Files(1) ' адресс первого файла из перенесенных
End Sub

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Ты просто не представляешь,как ты меня выручаешь. Спасибо..

Сообщение exp. » 10.01.2007 (Ср) 18:57

ну опять... :evil:
вот кусок программы:
вроде все правильно
но почему то не работает..
нужно чтобы строчка с найденным словом удалялась..

Код: Выделить всё
Option Explicit
    Dim P As Integer
    Dim txt As String
    Dim intFH As Byte
    Dim strNumber As Byte
Private Sub btn_open_Click()
    P = 1
    intFH = FreeFile
    Open "e:\MANIFEST.MF" For Input As intFH
        Do Until EOF(1)
            strNumber = strNumber + 1
            Line Input #intFH, txt
            If InStr(P, txt, "MIDlet-Permissions:") <> 0 Then
                Close #intFH
                GoTo m2
            Else
                GoTo m1
            End If
m1: Loop
    Close #intFH
    Exit Sub
m2: Open "e:\MANIFEST.MF" For Random As intFH
        Put #intFH, strNumber, ""
    Close #intFH
End Sub

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 10.01.2007 (Ср) 18:59

schalexey
забыл поблагодарить.. :roll:
ты просто не представляешь как меня выручаешь
спасибо огромное..

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 10.01.2007 (Ср) 19:28

exp.

Ужасный код... сам то понял что он делает?

З.Ы. и зацени кнопку Правка
Весь мир матрица, а мы в нем потоки байтов!

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 10.01.2007 (Ср) 19:59

exp. тебе никто никогда не говорил что GOTO использовать это "дурной тон"... есть другие способы прерывания циклов это был раз;)
А теперь два: код и не будет работать )) не правильно организована работа с файлом. (читай про произвольный доступ к файлам). => строка удаляться и не будет.

Код: Выделить всё

Private Sub btn_open_Click()
Dim FIn As Integer
Dim FOut As Integer
Dim txt As String
Dim strFin As String
strFin = "e:\MANIFEST.MF"
    FIn = FreeFile
    Open strFin For Input As FIn
    FOut = FreeFile
    Open strFin & "_" For Output As FOut
        Do Until EOF(FIn)

            Line Input #FIn, txt
            If InStr(txt, "MIDlet-Permissions:") = 0 Then
                Print #FOut, txt
            End If
        Loop
       
    Close #FIn
    Close #FOut
    Kill (strFin)
    FileCopy strFin & "_", strFin
    Kill (strFin & "_")
End Sub


Должно быть примерно так... проверь... ошибок не выдает но не проверял на работоспособность, не на чем.
Последний раз редактировалось schalexey 10.01.2007 (Ср) 20:59, всего редактировалось 1 раз.

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 10.01.2007 (Ср) 20:27

нет не получается:
file already open... :cry:

schalexey
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 18.02.2005 (Пт) 17:41
Откуда: Сургут

Сообщение schalexey » 10.01.2007 (Ср) 20:59

exp. писал(а):нет не получается:
file already open... :cry:


Ай.. точно... смотри исправил код :)

exp.
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.01.2007 (Пт) 12:36

Сообщение exp. » 10.01.2007 (Ср) 21:06

schalexey
спасибо за совет, но я уже сделал еще проще:
создал коиейнер,потом слил в тот-же файл.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 37

    TopList