Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

NEOMATRIX



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Данный топик предназначен только для обсуждения типовых задач на Visual Basic.
Обсуждение задач на VBA (а именно, Excel, Word, Access) строго запрещено!
Пишите в соответствующих топиках.

 
Родственные топики:
  • Excel VBA - часть 1, часть 2 - все вопросы по Excel VBA туда
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • VBScript - программирование "удобняшек" на VBScript
  • QBasic - типовые задачи на QBasic
     
  • Date Time Functions In Visual Basic
  • VB6's Trig, Math, Financial, Boolean, and Random functions
  • Visual Basic 6 String Functions
  • VB6 Number System Functions (Hex, Oct, Etc)
  • VB6's DateAdd function
     
  • Functions (Visual Basic)
  • Keywords and Members by Task
  • Visual Basic Reference
     
  • Visual Basic String Manipulation Tutorials
     
  • Top 10 Visual Basic Sins

     
    Учебники:
    Visual Basic для студентов и школьников. Культин Н. (2010)
    Занимательное программирование на Visual Basic.NET. Климов А. (2005)
    Visual Basic в задачах и примерах. Сафронов (2009)
    Visual Basic 2012 на примерах. Зиборов В. (2012)

  • Всего записей: 202 | Зарегистр. 29-12-2004 | Отправлено: 19:30 16-11-2005 | Исправлено: XPerformer, 10:07 28-10-2014
    NeverSmile

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

     
    Добавлено:
    sun888,слуш, напиши плиз какие кнопки перед этим нада ставить, а то я не могу сделать эти задачи, пока кнопки не поставлю!!!

    Всего записей: 2 | Зарегистр. 23-05-2007 | Отправлено: 19:00 24-05-2007 | Исправлено: NeverSmile, 19:34 24-05-2007
    Shaa

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как управлять правами
     
    в конкретике задача следующая,
    есть список сайтов (грубо говоря папки). необходимо в каждой конкретной папке (задан список) добавить конкретных юзеров (также задаются) и дать им конкретные права (Read Execute, Read Execute Modify).
    т.е. допустим папка А, если есть в неё добавляется юзер А1, в папку А2 если есть юзер А1 и А2... ну это уже лирика.
    Далее разрешить наследование и принудительно заменить права всем чайлдам текущими правами (2 галочки в Advanced Options)
     
    Интересует как это автоматизировать, опыта с VB совсем нет, но что-то мне подсказывает что в cmd это сделать нереально

    Всего записей: 128 | Зарегистр. 25-01-2005 | Отправлено: 20:09 24-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    eika
    Со всем помочь не смогу. Он у тебя, похоже, в составе ещё чего-то работает, да и времени особо разбираться нет, тем более сортировку писать. Так что, на скорую руку, будем сохранять log по "D:\!FTPLOGS\UploadLatest\Upload.txt"
    Очисти его один раз для записи модифицированных данных
    1. в Function Parser() закомментируй вызов DeleteFile, CreateFile (удаляет и создаёт новый log);
    2. в Function WriteUploadLog(File) измени
    Line = File.Name & Chr(9) & File.Size на  
    Line = File.Name & Chr(9) & File.Size & Chr(9) & File.DateCreated & Chr(9) & File.DateLastModified
     
    Всё - теперь у тебя в Log будут накапливаться данные. Открываешь в любом табличном процессоре и сортируешь по датам.
    Да, раздел по VB Script здесь
    И вопрос, а в чём проблема реализовать это хозяйство на PHP?
     
     
     
    Добавлено:
    Shaa
    Раздел по VB Script здесь
    Скачай себе vbsedit, там примеров по AD полно, да и MSDN с WMI не забывай

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 03:34 25-05-2007 | Исправлено: AndVGri, 03:48 25-05-2007
    eika



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri
     

    Цитата:
    Всё - теперь у тебя в Log будут накапливаться данные.  

    Не. Мне не надо, чтобы он просто накапливал. Надо, чтобы он в этом списке выводил xx последних файлов. Т.е. таймер на 24 часа нужно отключить, и сделать счетчик на, скажем, 20 последних файлов. Все что было до этих 20 - стирать. Именно поэтому автор исходного скрипта (не я, конечно) делает ротацию лога через delete/create.

    Цитата:
    Открываешь в любом табличном процессоре и сортируешь по датам.  

    В том-то и дело, что это автоматизированная система, которая постоянно живет. Это не единичный результат работы, который можно потом процессить руками. Нужно чтобы все само "автоматом" бегало.

    Цитата:
    Да, раздел по VB Script здесь  

    VB и VBS - разные вещи?

    Цитата:
    И вопрос, а в чём проблема реализовать это хозяйство на PHP?  

    Скрипт работает под готовый софт с готовым API.
     
    P.S.
    Спасибо за попытку помочь!

    Всего записей: 2481 | Зарегистр. 08-01-2002 | Отправлено: 12:33 25-05-2007 | Исправлено: eika, 12:37 25-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    eika
    И всё-таки в чём проблема написать на PHP? Твой API вызывает следующие процедуры

    Код:
     
    Sub OnClientLoggedIn()
        Call PlayFile("ClientLoggedIn")
    End Sub
     
    Sub OnSiteLatestUpload(param)
        Call PlayFile("Site")
    End Sub
     
    Sub OnClientDisconnected()
        Call Parser()
    End Sub
     
    'Domain Functions
    Sub OnEveryDay()
        Call Parser()
    End Sub
     

    Подмени в, например, OnEveryDay()

    Код:
     
    Sub OnEveryDay()
        Dim pShell
        Set pShell = WScript.CreateObject("WScript.Shell")
        pShell.Run "d:\path\ЗапускающийPHP.exe d:\path\OnEveryDay.php", , True
        WScript.Echo "PHP работу OnEveryDay закончил"
    End Sub
     

    И выполняй код по работе, сортировке, отбору файлов в php как тебе нужно

    Цитата:
    VB и VBS - разные вещи?  

    Так же как Java и Javascript, если тебе об этом что-то говорит

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 13:56 25-05-2007 | Исправлено: AndVGri, 13:59 25-05-2007
    eika



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо.
     
    Вызывать из софта VBS, потом оттуда PHP? Зачем такой огород городить, если есть VBS и он позволяет все это сделать? Да и нет на этой машине PHP (не нужен он там).  
     
    Скрипт ведь уже есть и работает почти как надо - осталось только его немного модифицировать.
     
    P.S.
    Да, между Java / JS разницу понимаю!

    Всего записей: 2481 | Зарегистр. 08-01-2002 | Отправлено: 15:15 25-05-2007 | Исправлено: eika, 15:17 25-05-2007
    Shaa

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AndVGri
    спасибо за совет, скачаю гляну, с вопросаим пойду в тот раздел
    совсем забыл что VB и VBS разные вещи

    Всего записей: 128 | Зарегистр. 25-01-2005 | Отправлено: 23:21 25-05-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ! У меня тут такая заморочка  
    Обработка файлов данных.
    Исходные данные о предприятиях: код, название, год начала реконструкции (не ранее 1995г., число лет реконструкции не более пяти), год окончания реконструкции (не позже 2005 г.), планируемые затраты на каждый год реконструкции. Число предприятий не определено. Записать данные в файл. Используя данные в файле, найти общие планируемые затраты на реконструкцию за заданный год.
     
     
    «найти общие планируемые затраты на реконструкцию за заданный год.» - вот что меня напрягает. Мне надо, чтобы это действовало так:
    Командная кнопка решить
    1)    через Text1  вводится год (от 1995 до 2005)
    2)    Командная кнопка «решить»
    3)    выдаётся таблица  MSFlexGird, где появляются: шапки колонок – года (1995 до 2005), содержание колонок – планируемые затраты за данный год по всем предприятиям.
    4)    В Text2 появляются общие планируемые затраты на реконструкцию за заданный год.
    Вот, что у меня уже есть:
    Private Type prod
           kod As String * 3
           name As String * 10
           nachalo As String * 4
           konec As String * 4
           pl(1 To 5) As Single
           
    End Type
     
    Private pr As predp, x As predp, y As predp
    Private kolzap%, n_rec%, b As Boolean
     
    Private Sub Vvod_Click()
       Text1.Visible = False
       Open CurDir$ & "\predpr.dat" For Random As #1 Len = Len(pr)
       Do
          pr.kod = InputBox("Введите код предприятия")
          pr.name = InputBox("Введите название предприятия")
          pr.nachalo = InputBox("Введите год начала реконструкции (не ранее 1995г., число лет реконструкции не более пяти)")
          pr.konec = InputBox("Введите год окончания реконструкции (не позже 2005 г.)")
          For i = 1 To 5
        pr.pl(i) = InputBox("Введите планируемые затраты на каждый год реконструкции " & i & " год")
          Next i
           
          Put #1, , pr
       Loop Until MsgBox("Продолжить ввод данных ?", 36) = vbNo
       Close #1
    End Sub
     
    Private Sub prosmotr_Click()
     Dim i%, j%
       Text1.Visible = False
       Open CurDir$ & "\predpr.dat" For Random As #1 Len = Len(pr)
       kolzap = LOF(1) \ Len(pr)
       fg.Cols = 13: fg.Rows = 16
       For i = 0 To 12
         fg.ColWidth(i) = fg.Width / 13
       Next i
       fg.Clear
       fg.FormatString = "^ № р/р |^ Код |< Наименование   |^ PL1 |^ PL2 |^ PL3 " & _
       "|^ PL4 |^ PL5 |^ Начало реконструкции |^ Конец реконструкции  "
       For i = 1 To kolzap
          Get #1, , pr
          fg.TextMatrix(i, 0) = i
          fg.TextMatrix(i, 1) = pr.kod
          fg.TextMatrix(i, 2) = pr.name
           
            For j = 1 To 5
             fg.TextMatrix(i, j + 2) = pr.pl(j)
             fg.TextMatrix(i, j + 5) = pr.nachalo
            fg.TextMatrix(i, j + 7) = pr.konec
           Next j
       Next i
       
       Close #1
     
    End Sub

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 20:54 26-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka
    А зачем у тебя избыточные условия? Если известен го начала реконструкции и её продолжительность, то последний год вычисляется как сумма. Если известны годы начала и конца реконструкции, то продолжительность то ж вычисляется, как разность конца и начала.
    Что, трудно форму написать для ввода данных по предприятию? Зачем над пользователем издеваться, используя InputBox?
    А по существу вопроса, сформулирован он у тебя, как бы это помягче... Проходишь под данным таблицы. Если год расчёта лежит в диапазоне начала/конца реконструкции, то вычисляешь смещение на требуемый год и добавляешь к переменной сумматору результата значение затрат на реконструкцию на данный год.

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 03:57 27-05-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    надо считать не от начала реконструкции до конца, а за определённый год по всем предприятиям.

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 10:43 27-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka
    читай внимательнее

    Цитата:
    вычисляешь смещение на требуемый год

    Подробнее...

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 10:55 27-05-2007 | Исправлено: AndVGri, 11:15 27-05-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ну, у меня такая штука получилась, но не считает ничего  
     
    Private Sub reshenie_Click()
    Dim Mas%(), i%, j%
    Dim needYear As Integer, iMoney As Currency
    Open CurDir$ & "\predpr.dat" For Random As #1 Len = Len(pr)
       kolzap = LOF(1) \ Len(pr)
       fg.Clear
       fg.Cols = 13: fg.Rows = 16
       
        For i = 1 To kolzap
         Get #1, , pr
     
      pr.needYear = InputBox("Введите  год")
     
    If (needYear >= pr.nachalo) And (pr.needYear <= pr.konec) Then
        iMoney = CCur(fg.TextMatrix(i, needYear - pr.nachalo + 5))
        CountMoney = Val(CountMoney) + iMoney
    End If
     
    fg.TextMatrix(i, 0) = pr.name
              Next i
    Seek #1, i
       Get #1, , pr
     
    Text2.Text = Val(CountMoney)
     
    Close #1
     
    End Sub

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 16:31 27-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka

    Цитата:
    pr.needYear = InputBox("Введите  год")
     
    If (needYear >= pr.nachalo) And (pr.needYear <= pr.konec) Then  

    Ну, pr.needYear проинициализирован, а needYear = 0 то есть, первая часть условия не выполняется. Да, и какого типа у тебя года?

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 16:37 27-05-2007 | Исправлено: AndVGri, 16:40 27-05-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот типы:
     
    Private Type prod
           kod As String * 3
           name As String * 10
           nachalo As String * 4
           konec As String * 4
           needYear As String * 4
           pl(1 To 5) As Single
           
         
    End Type
     
    Private pr As prod, x As prod, y As prod
    Private kolzap%, n_rec%, b As Boolean
     
    это
    Цитата:
    If (needYear >= pr.nachalo) And (pr.needYear <= pr.konec) Then  

     заменила на  If (pr.needYear >= pr.nachalo) And (pr.needYear <= pr.konec) Then
     
    выдаёт ошибку на iMoney = CCur(fg.TextMatrix(i, pr.needYear - pr.nachalo + 5)) - Несовпадение типов.

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 16:49 27-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka
    Извини, не досмотрел, предполагал, что для денег используется тип денежный. Так что, убери приведение CCur, а iMoney и CountMoney определи как Single

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 16:55 27-05-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Знаешь, он всё равно несовпадение типов выдаёт
    Ты не думаешь, что может быть надо pr.pl задействовать?
     
    Или подставить в типовую задачку:
     
     
    Подробнее...

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 17:51 27-05-2007 | Исправлено: lapulechka, 17:53 27-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lapulechka
    Подводя итоги
    Подробнее...

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 19:09 27-05-2007 | Исправлено: AndVGri, 19:10 27-05-2007
    lapulechka

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, мой хороший! Что бы я без тебя делала! Наверное, очень долго бы тупила. Спасибо, что столько своего  времени на меня потратил! Щас займусь оформлением всего этого - это я хорошо умею!

    Всего записей: 20 | Зарегистр. 26-03-2007 | Отправлено: 19:47 27-05-2007
    TyMc

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача такая: Зашифровать текст по правилу: слова, которые встречаются в тексте более двух раз,  закодировать их; текст сжать, заменяя слова кодами. Составить таблицу кодов.
     
    кто может пожайлуста напишите прогу для нахождения одинаковых слов  
         

    Всего записей: 3 | Зарегистр. 30-05-2007 | Отправлено: 22:48 30-05-2007
    AndVGri

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    TyMc
    Используй Dictionary Ключами будут уникальные значения слов, а значениями, количество повторов уникальных значений.

    Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 05:04 31-05-2007
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru