gifts2017

Сумматор

Опубликовал Дмитрий (Delon) в раздел Программирование - Практика программирования

Пример операций со значениями из буфера обмена.

Вместо статьи:
Простой пример обработки для выполнения арифметических действий, использования различных функций с числовыми значениями и формулами из ячеек таблиц, текстовых файлов и т.п. через буфер обмена. Расширение возможностей [M] [M+] [M-].

  1. Выделяем нужные ячейки с числовыми значениями в печатных формах, значения в текстовых файлах и.т.п.
  2. Жмем Ctrl - C или щелчок правой клавиши "мыши" и <Запомнить>
  3. Открываем данную обработку
  4. Жмем Alt - С или [F5]

Отображается сумма по выбранным значениям и результат вычисления иных функции (максимум, минимум, среднее арифметическое).

Обработка открыта для дополнения необходимыми Вам функциями !

Дополнительно можно использовать для суммирования значений разделенных ";" и " " из текстового файла. Также осуществляется расчет текстовых формул из буфера вида "12+165/3" - [F9]

//далее читаем как статью ... модуль дополняем необходимыми функциями
Перем Сум,Итог,Миним,Максим,Среднее,Колво;
Процедура Вычислить(Как)
    HTM=СоздатьОбъект("htmlfile");
    //глянем в буфер обмена - Clipboard
    Текст=СокрЛП(HTM.ParentWindow.ClipboardData.GetData("text"));
    Если ПустаяСтрока(Текст)=1 Тогда
        Предупреждение("Буфер обмена пуст !",3);Возврат;
    КонецЕсли;      
    //расчет по формуле
    Если Как>0 Тогда
        Сум=Шаблон("["+Текст+"]");Возврат;
    КонецЕсли;
    Р=РазделительСтрок;
    Текст=СтрЗаменить(Текст,СимволТабуляции,Р)+Р;//гориз.ячейки
    Текст=СтрЗаменить(Текст,"'","");//убираем триады
    Текст=СтрЗаменить(Текст,";",Р); //разделитель в тексте ";"
    Текст=СтрЗаменить(Текст," ",Р); //разделитель в тексте " "
    Кол=СтрКоличествоСтрок(Текст);//количество значений
    Сум=0;//сумма значений
    Колво=0;//реальное количество значений
    Для i=1 По Кол Цикл
        тЗ=СтрПолучитьСтроку(Текст,i);
        Если ПустаяСтрока(тЗ)=0 Тогда
            КолВо=Колво+1;	
            Зн=Число(тЗ);//получаем числовое значение
            Сум=Сум+Зн;
            Миним =?(i=1,Зн,Мин (Зн,Миним ));
            Максим=?(i=1,Зн,Макс(Зн,Максим));
            //...здесь может быть представлена ваша арифм.функция...среднеквадратичная дисперсия например
        КонецЕсли;
    КонецЦикла;
    Среднее=Сум/Колво;
    Итог=Итог+Сум;//дополняем итог
КонецПроцедуры;

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Сумматор
.1195553903 12,00Kb
25.09.09
19
.1195553903 12,00Kb 19 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сhe Burashka (CheBurator) 20.11.07 21:58
Сорри, что немного не потеме - а как можно отловить какая область выделена в печатной форме?
2. Артур Аюханов (artbear) 21.11.07 08:00
Прикольно :) +1
.
А что за объект "htmlfile"?

Код
HTM=СоздатьОбъект("htmlfile");
Показать полностью

От ИЕ ? или еще что?
.
ЗЫ такой маленький код можно было здесь показать :)
3. Герман (German) 21.11.07 10:20
а калькулятор для чего придумали ? как в 7.7 так и 8 он это умеет
4. Дмитрий (Delon) 21.11.07 12:39
(3) Знамо дело, но мож кому надо мошные функции и формулы вычислять,
суммировать кучу значений из текста.
(2) Да. От IE. Пож-та-код выложу.
(1) Нет.
5. Евгений Мартыненков (JohnyDeath) 21.11.07 12:46
(1) Че, а ты на TableDoc от Трапезникова Дмитрия (aka trad) посмотри: там много чего интересного есть, в том числе и метод "ПолучитьВыделение" http://www.1cpp.ru/forum/YaBB.pl?num=1177688915
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа