Отправляет email-рассылки с помощью сервиса Sendsay

VB.NET-World

  Все выпуски  

VB.NET-World Выпуск номер 6


Информационный Канал Subscribe.Ru


VB.NET - World
::Рассылка:.
  Архив
  Подписка

::Авторы:.
   Алексей

::Ссылки:.
   M-Design
  VBNet.ru

::Подписка:.

VB.NET-World
Visual Basic: новости сайтов, советы, примеры кодов
Новости сайта 'Все о Паскале'
Все про Pascal

::Баннеры:.

VB.NET-World

SUPERTOP

Рейтинг@Mail.ru

Рейтинг ресурсов УралWeb
Приветствую! Вот читайте дополнения к вышедшей статье!

С наилучшими пожеланиями,
главный редактор VB.NET-World

Алексей Кувалин

Задать вопрос по рассылке можно отправив письмо в текстовом формате. Быстрый ответ по этому ящику гарантирован.


№ 6 (от 25.03.2003)
Содержание выпуска:
Компакт-диск по Visual BASIC!
Прочь все сомнения! Наконец-то вышел в свет долгожданный сборник всех исходников, кодов, утилит, документаций по Visual Basic!

Выдержки из меню:
  • исходники (30МБ)

  • документация (200МБ)

  • компоненты (40МБ)

  • утилиты (150МБ)

  • VB6.0 RUS (100МБ)

  • полезности (180МБ)


  • Цена диска 40 рублей + пересылка 35 рублей! Итого 75 рублей за полный комплект для профессионалов!


    Заказать >>>

    Компакт-диск "VB.NET-World"
    Стоит ли покупать?

    Когда-то, еще когда я был участником конфы "Сообча ВБ" меня посетила мысль создания компакт-диска для ВБ-программера, диска, который бы удовлетворил требования и профи и начинающего. Но воплотить идею в реальность получилось только в данный момент. Думаю, что в какой-то мере мне удалось одухотворить ранние перспективы. На диске представлены коллекция документационных материалов, включающий сайт рассылки "Мир программирования на Visual BASIC и HTML" с очень удобной навигацией, огромное количество учебников и книг по VB, около 11 инсталляционных программ, от самых простых, до полностью профессиональных пакетов. Инсталляция русской VB6. Очень большое количество примеров и исходников, компонентов. А самое главное, что представлены скины для любых проектов! Не обошлось и без полезных утилит. В общем весь VB в одном флаконе!


    Новые дополнения и изменения

    После решения обновить содержимое диска новыми программными продуктами, было добавлено:
    • несколько десятков исходных кодов и архивов с проектами;
    • архивы выпусков рассылки "VB.NET-World";
    • около 200 иконок и графических файлов для ваших проектов;
    • новые программы для создания инсталляционных и справочных пакетов;
    • документация, ранее не присутствовавшая на диске;
    Заказать >>>


    Для покупки данного компакт-диска нужно ПОЛНОСТЬЮ заполнить нижеприведенную форму, после чего, вам придет уведомление о прочтении данного документа. Если же в течении 2-4 дней ответа не послупило, попробуйте отправить данные повторно. Если пришел ответ, то через 2-3 недели на ваш адрес придет почтовое уведомление и вы должны будете выкупить на почте бандероль стоимостью 80-90 рублей.


    Практикум на примерах
    Защита данных файлов, содержащих информацию о настройках программы на примере работы с данными INI (дополнение к статье).

    Автор:
    Алексей Кувалин

    После выхода рассылки мне начали приходить письма, что данный исходник содержит ошибки. И я решил его немного подкорректировать и дополнить обработчиками ошибок.

    Вначале разберемся с модулем чтения-записи в INI файлы. Красным цветом выделены изменения:
    ' Код модуля modINI
    
    'Вставляем код проверки о существовании файла
    Declare Function PathFileExists Lib "shlwapi.dll" _
    Alias "PathFileExistsA" (ByVal pszPath As String) As Long
    Dim giveme As Byte
    
    ' Чтение и запись строк в файлы инициализации
    Declare Function GetPrivateProfileString& Lib _
    "kernel32" Alias "GetPrivateProfileStringA" (ByVal _
    lpszSection$, ByVal lpszKey$, ByVal lpszDefault$, _
    ByVal lpszReturnBuffer$, ByVal cchReturnBuffer&, _
    ByVal lpszFile$)
    Declare Function WritePrivateProfileString Lib _
    "kernel32" Alias "WritePrivateProfileStringA" (ByVal _
    lpApplicationName As String, ByVal lpKeyName As String, _
    ByVal lpString As String, ByVal lplFileName As String) As Long
    
    ' Чтение из файла инициализации
    Public Function GetINI(INIfile As String, Section As String, _
    Key As String, Default As String)
    
    ' Дешифруем
    ' Если файл существует, то:
    giveme = PathFileExists(App.Path & "\" & "options.ini")
    If giveme = 1 Then
    Call Admin.DeCode
    End If
    
    ' Читаем данные
    Dim temp As String * 256
    Dim length As Integer
    temp = Space$(256)
    length = GetPrivateProfileString(Section, Key, _
    Default, temp, 255, INIfile)
    GetINI = Left$(temp, length)
    ' Шифруем
    Call Admin.Code
    End Function
    
    ' Запись в файл инициализации
    Public Sub SetINI(INIfile As String, Section As String, _
    Key As String, Value As String)
    
    ' Дешифруем
    ' Если файл существует, то:
    giveme = PathFileExists(App.Path & "\" & "options.ini")
    If giveme = 1 Then
    Call Admin.DeCode
    End If
    
    ' Записываем данные
    Dim n As Integer
    Dim temp As String
    temp = Value
    For n = 1 To Len(Value)
    If Mid$(Value, n, 1) = vbCr Or Mid$(Value, n, 1) = vbLf _
    Then Mid$(Value, n) = ""
    Next n
    n = WritePrivateProfileString(Section, Key, temp, INIfile)
    ' Шифруем
    Call Admin.Code
    End Sub
    
    Теперь вставляем обработчик ошибок в функцию Decrypt():
    Sub Decrypt()
    On Error GoTo hand
    'тут код всей функции
    hand: Exit Sub
    End Sub
    
    И в сам класс Cipher в функцию Shrink():
    '~~~.Shrink
    Public Sub Shrink()
    On Error GoTo hands
    'тут код всей функции
    hands: Exit Sub
    End Sub
    
    Теперь, вы как поняли, ошибка заключалась в том, что программа пыталась расшифровать несуществующий файл Options, который должен был быть созданным после первого чтения настроект. Такое не случалось :) Но вот все исправлено.

    Теперь хочу ответить за последовавшую критику моей статьи.

    Димон. Я собирался создать довольно функциональный, простой и быстрый криптомодуль, чтобы пользователь не копался в бесконечном коде, а мог сразу все понять и прооперировать. Потом, я не утверждаю, что мой метод лучше 1024 битного. Я этого не говорил. Пусть мой поддерживает только 24 бита, но зато с помощью этого примера многие пользователи разобратся в методах защиты информации и смогли спасти настройки своих проектов от 99% "покушений". Еще я собирался сам что-то свое сделать, а не искать находящийся диск по криптографии под рукой. И стал бы ты каждый раз после записи информации программы в файл открывать криптопакет и шифровать ее, а позже проделывать обратную операцию? Нет. Думаю, я на все твои вопросы ответил.

    И еще: прежде чем критиковать, подготовь хотя бы один выпуск рассылки САМ и потом уже утвержай, что ты соавтор рассылки, причем, мы договаривались, что форма подписки будет на твоем сайте, а я ее почему-то не нашел. Анализируй и обдумывай все это сам. Тем более, что я тебе дал пароль от рассылки, чтобы ты отправлял РЕАЛЬНУЮ информацию, а не излагал свое мнение в отдельном выпуске. Вот. Удачи!


    Выпуск подготовили:
    Алексей: x-alexis@mail.ru
    © 2002-2003 Рассылка "VB.NET-World"
    © 2000-2002 экс "Мир программирования на VB и HTML"
    Главный редактор: Алексей

    http://subscribe.ru/
    E-mail: ask@subscribe.ru
    Отписаться
    Убрать рекламу

    В избранное