четверг, 14 октября 2010 г.

What is my IP adress? Как узнать свой реальный IP адрес?

Для чего это вообще может быть нужно?! Область применения обширная, приведу один пример: вам необходимо подключится к удаленному рабочему столу своего домашнего компьютера, тогда второй пример именно для вас.


Первый пример
В первом примере идем по адресу http://whatismyip.org , после загрузки страницы, берем ее содержимое и записываем в файл MyIP.txt

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Dim URl, objShell, objShellWindows

Set fso = CreateObject("Scripting.FileSystemObject")
  fso.CreateTextFile "MyIP.txt"
  Set f = fso.GetFile("MyIP.txt")
  Set ts = f.OpenAsTextStream(ForWriting, TristateTrue)

URL = "http://whatismyip.org/"

Set objIE = WScript.CreateObject("InternetExplorer.Application")
      objIE.Navigate URL
      objIE.Visible = false

While objIE.Busy
  Wscript.Sleep 1000
Wend

ts.WriteLine objIE.document.body.innerTextts.Close

objIE.Quit


Второй пример
Во втором примере идем по адресу http://whatismyip.org , после загрузки страницы, берем ее содержимое и отправляем полученный IP адрес на email.
ПРИМИЧАНИЕ: для использования второго примера нам потребуется программа Blat это маленькая (70kB) open source консольная програмулька под Windows, которая позволяет отправлять e-Mail по SMTP протоколу из командной строки.


Dim URl, WshShell, objIE, Ip

Set WshShell = WScript.CreateObject("WScript.Shell")

URL = "http://whatismyip.org/"

Set objIE = WScript.CreateObject("InternetExplorer.Application")
      objIE.Navigate URL
      objIE.Visible = false

While objIE.Busy
   Wscript.Sleep 1000
Wend

Ip = objIE.document.body.innerText

WshShell.Run "blat -serverSMTP smtp.yandex.ru -f MailОтпровитель@ya.ru -u Логин -pw Пароль -to MailПолучатель@yandex.ru -subject Ip -body " & Ip & " -log Ip.txt",0,1

objIE.Quit

вторник, 12 октября 2010 г.

Excel. Формулы массива.

Цель: показать начинающим пользователям интересные возможности Excel в данном случае под такими возможностями подразумевается работа с формулами массива.

Чтобы в полной мере использовать возможности Excel, необходимо уметь работать с формулами массива, которые позволяют выполнять вычисления, недоступные при помощи других формул.
Как то давным давно... учился я в институте) бухгалтер одно предприятия попросил меня решить при помощи Excel следующую задачу: дан ряд чисел, в этот ряд входят числа как положительные так и отрицательные, необходимо вывести сумму только положительных чисел!
Задачу эту будем решать двумя способами для наглядности работы и преимущества рассматриваемого инструмента.
В первом и во втором случае мы воспользуемся тремя функциями
  • СУММ() - суммирует аргументы,
  • ЕСЛИ() - Возвращает одно значение, если заданное условие при вычислении дает значение ИСТИНА, и другое значение, если ЛОЖЬ.
  • ЗНАК() - Определяет знак числа. Возвращает значение 1, если число положительное, 0 (ноль), если число равно 0, и -1, если число отрицательное.

Приступим
Способ №1
  1. Как показано на рис.1 в ячейку С3 мы вводим формулу =ЕСЛИ(ЗНАК(B3)>=0;B3;"") и нажимаем клавишу Ввод(Enter)
  2. курсор должен находится в ячейке С3, нажимаем левой кнопкой мыши на правый нижний угол ячейки С3 и не отпуская кнопки мыши тяним до ячейки С18, отпускаем кнопку мыши, после этого мы видим что числа с отрицательным знаком отсеялись!
  3. В ячейку С20 вводим формулу =СУММ(C3:C18) и видим сумму положительных чисел из данного нам ряда чисел, первым способом задача решина.


Способ №2

  1. Создаем массив.
    1. выделяем диапазон ячеек от G3-G18
    2. на вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.
    • Откроется диалоговое окно Присвоение имени.
    1. В поле Имя введите mas1.
    • Есть альтернативный и более быстрый способ присвоения имени диапозону ячеек смотрите на рис. 2
  1. В ячейку G20 вводим формулу =СУММ(ЕСЛИ(ЗНАК(mas1)=1;1;0)*mas1) и нажимаем сочетание клавиш  CTRL+SHIFT+ENTER а не ENTER, формула будет заключена в фигурные скобки ({ }) это значит что вы ввели формулу массива.

ПРИМЕЧАНИЕ.   Формулы массива иногда называют «формулами CSE», поскольку для их ввода в рабочих книгах используется сочетание клавиш CTRL+SHIFT+ВВОД .