Читалка архивов, помогите подкрутить

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Читалка архивов, помогите подкрутить

Сообщение Pantalone » 05.08.2006 (Сб) 23:03

Вот здесь находится интересный примерчик, способный читать содержимое различных архивов, таких как rar, zip и других.
Есть у кого желание потестировать насколько хорошо он справляется с этим?
И еще, никак не удается исправить крякозябры, которые он выводит вместо русских символов.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 06.08.2006 (Вс) 19:32

Более простой и короткий пример. Файлы в архиве видятся WinRar-ом нормально. А вот примерчик выводит какую-то фигню. Как быть?
Вложения
Sample.zip
(81.6 Кб) Скачиваний: 41

Serge Gavrilov
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 26.01.2006 (Чт) 11:35

Сообщение Serge Gavrilov » 06.08.2006 (Вс) 21:46

используйте OemToChar
Код: Выделить всё
Declare Function OemToChar Lib "user32" Alias "OemToCharA" _
  (ByVal lpszSrc As String, ByVal lpszDst As String) As Long


добавте в ExtraitRAR строковую переменную s2

Код: Выделить всё
...
s = Left(HeadRAR.FileName, InStr(1, HeadRAR.FileName, Chr(0)) - 1)
s2 = s
OemToChar s2, s
Form1.List1.AddItem s
...

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 06.08.2006 (Вс) 22:42

Помогает частично. Второй файл в архиве как был вопросами так и остается.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 07.08.2006 (Пн) 1:53

Щас я расскажу как добавлялся этот хитрый файл.
В английской ХР с русской локалью, русским языком для неюникодных програм и русской раскладкой был создано два файла с русскими именами. После чего один был запакован в архив раром.
Далее локаль сменили на английскую, раскладку тоже и настройки для неюникодных программ. И уже после этого к тому архиву был добавлен второй файл. В результате имеем такую вот фигню.
Но, сам винрар открывает этот архив и показывает имена файлов нормально, плюс некоторые другие проги работающие через unrar.dll так же видят все имена нормально.
Можно конечно забить на такую маловероятную ситуацию, но интересен сам факт что же такое с именем-то и как его увидеть вместо этих вопросов?

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

Сообщение GSerg » 07.08.2006 (Пн) 2:12

А ведь в документации к библиотеке указана функция чтения в юникоде.
А в примерах использования, идущих с библиотекой, показано объявление и использование.
Но кто читает документацию?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Сообщение Pantalone » 07.08.2006 (Пн) 2:33

GSerg
Спасибо.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 83

    TopList