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

Клуб профессиональных программистов :: Выпуск #95


Клуб профессиональных программистов "Весельчак У"
Информационная рассылка сайта и форума.  Выпуск No95 (2010-08-17).

Здравствуйте, уважаемые читатели!

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



  • Программирование :: Общий
  • допустим, имеем

    Код:
      <node>value</node>

    грузим в IXMLDOMNode. при этом имеем:

    IXMLDOMNode.nodeName = node;
    IXMLDOMNode.nodeValue = '';
    IXMLDOMNode.nodeType = NODE_ELEMENT;

    а вот если пробежаться по наследникам, то в одном из них, у которого nodeType = NODE_TEXT, IXMLDOMNode.nodeValue = value.

    если забить на DOM-овскую модель и парсить обычным дельфийским TXMLDocument, то для такого нода имя = node, а значение - value, и нет никакой необходимости парсить детей нода, только чтобы узнать его значения. и это логично, в общем-то.

    вопрос в следующем, что, IXMLDOMNode всегда хранит своё значение, как дочерний нод?

    то ли я тупой, то ли лыжи не едут...

  • Исходные данные:
    Есть большой SVN-репозиторий с кучей веток-проектов.
    Есть какой-то удаленный colocation, в котором нужен доступ в определенный раздел этого SVN. Поскольку находится он далеко, а вытаскивает данные скрипт каждые 30-50 минут, то операция export занимает около 10 минут, что слишком медленно..
    Очевидно, что самый простой вариант - сделать копию SVN и настроить одностороннюю синхронизацию, поскольку на втором не предполагается никаких коммитов - нужен только доступ к более-менее свежим файликам.
    Особенность в том, что полный репозиторий там не нужен, поскольку:
    * он большой
    * нужна только одна ветка
    * в остальные ветки коммиты происходят гораздо чаще
    * colocation находится далеко и миграция всего репозитория туда связана с перекачкой кучи байтиков через небыструю сеть интернет

    Синхронизация нужна не моментальная, запаздывание в 10-20 минут вполне приемлемо.

    В связи с этим вопрос - кто сталкивался с такой задачей и какие готовые скрипты/решения/инструкции существуют?


    Второй вариант, который приходит в голову для решения такой задачи: checkout в рабочую папку и последующие update. Но мне такое решение не нравится по той причине, что во время работы часть файлов может быть модифицирована и update их не обновит. Также в процессе работы могут появляться мусорные файлы, поэтому каждый раз перед получением вся рабочая папка грохается.

    Третий вариант - checkout в промежуточную папку, делать update для нее, а потом копировать структуру папок в рабочую. Это уже лучше, но не так красиво, вдобавок надо будет избавляться от служебных .svn папок.
  • Вопрос не по программированию, а по эргономике и т.п. смежным направлениям.

    Предмет обсуждения: если на элемент неактивного окна кликнуть, то окно получает фокус и клик передается на этот элемент.

    Вопрос: логично ли это?

    В винде клик передается именно так (к примеру, в KDE можно управлять этим в пользовательских настройках). Например, кликаю чтобы только активизировать окно,  но попадаю на какую-нибудь кнопку. Правильно ли это? Логично ли? Ваше мнение!
  • MSDN для VS 2008 sp1, разделы открываются по полминуты (как с инета, так и локально)  :insane:
    Система - w7.
    В чём может быть причина? Не хочется пока 2010 ставить..
  • Программирование :: Общий :: Алгоритмы и математические задачи.
  • Подскажите как найти алгоритм для перехвата жертвы хищником.

    Известно первоначальное смещение жертвы относительно хищника.
    У прямолинейно двигающейся жертвы известны скорость и направление движения.
    У хищника известна скорость и требуется выбрать направление движения, чтобы достичь жертвы за минимальное время.


  • Здравствуйте.

    Имеется граф, заданный в матричной форме, и есть пакет, умеющий рисовать кружочки и палочки, но, естесственно, требующий задание координат.
    Проблема: найти подходящую библиотеку или, на худой конец, подробный алгоритм расчета координат верши графа.
    Разработка ведется в VC6.0.

    Спасибо.

  • Программирование :: Технологии разработки программных систем
  • Много написано в этой теме про состояния - не хочется создавать новую. Димка, подскажи, какой подход к след. проблеме:
    Есть класс Layout, на который можно добавлять различные визуальные Object'ы (пока это растровые изображения). Эти Object'ы интерактивны. Ну, в начале было просто - на MouseEnter обводил их рамочкой, на MouseLeave убирал рамочку. Обрабатывал события в самом экземпляре Object. Дальше - хуже.
    Когда перетаскиваешь объект - его можно "протащить" под другим, у которого Z-индекс выше, таким образом, срабатывает MouseLeave таскаемого объекта. Это мелочь. Дальше - хуже.
    При клике на объект - прилепить ему мини-тулбарчик (повернуть, скрыть, проч.). ладно, прилепил. При клике на другой объект, логично, что тулбар должен гаситься на старом и отображаться на новом объекте.
    Впринципе, это все не трудно реализовать школьными if-ами и перебором всей коллекции объектов Layout'а - на каждом погасить тулбар, а потом высветить на выбраном.
    Как это решают белые люди? Не могу связать ваши конечные автоматы со своей задачей.
  • Программирование :: .NET технология от и до
  • День добрый. Столкнулся с такой проблемой: в C# 3.0 появились т.н. "Автоматические свойства". Пользовался приблудой - все хорошо, пока не сталкнулся с абстрактными свойствами. Собственно, сеттер теперь нуждается в теле.
    Цитировать
    Автоматические свойства: компилятор сгенерирует закрытое (private) поле и соответствующие аксессор и мутатор для кода вида
    Код:
    public string Name { get; private set;
    }

    Код:
        public abstract class Symbol : ISymbol
        {
            public abstract void Draw();
            public abstract Brush SymbolBrush  { get; protected set; }
        }
    Код:
        public class SimpleFillSymbol:Symbol, ISymbol
        {

            public override Brush SymbolBrush
            {
                get
                {
                    return new SolidColorBrush(FillColor);
                }
                protected set; // SymbolBrush.set must declare a body because it is not marked abstract, extern, or partial

            }

        }
  • Есть ListBox, который получает данные из ObservableCollection Movies. Помогите, пожалуйста, разобраться, почему не изменяются данные в ListBox при изменении коллекции Movies?


    Вот код:

    Код:
    ...

    <Window.Resources>
    ...
    <DataTemplate x:Key="MovieNameListBoxTemplate">
    <Border Padding="5 5 5 5">
    <TextBlock Text="{Binding Name_}" />
    </Border>
    </DataTemplate>
    ...
    </Window.Resources>

    <ListBox x:Name="MovieNameListBox"
    ItemsSource="{Binding}"
    ItemTemplate="{StaticResource MovieNameListBoxTemplate}"/>



    Код:
    public partial class MovieWindow : Window
    {
    private ObservableCollection<Movie> Movies;

    public MovieWindow()
    {
    InitializeComponent();

    this.Movies = GetMovies();
    this.MovieNameListBox.DataContext = this.Movies_;
    }

            ...

    protected void SelectionChangedLettersCombo(object sender, SelectionChangedEventArgs e)
    {
    this.Movies = GetNewMovies();
    }

    public ObservableCollection<Movie> Movies_
    {
    get
    {
    return this.Movies;
    }
    set
    {
    this.Movies = value;
    }
    }


    }
  • Прочитал в переводе любопытную статью Эрика Липперта на тему того, как можно отстрелить себе ногу с помощью C# и модификации класса в середине иерархии.

    Если вкратце, то ситуация, возможно, несколько неординарная: если есть 3 класса иерархии A->B->C, и каждый находится в своей сборке, то виртуальные вызовы в классе C могут повести себя несколько неожиданным образом после добавления override в B и его перекомпиляции (без пересборки C).

    В общем, подробно по ссылке:

    http://blogs.msdn.com/b/ruericlippert/archive/2010/07/21/putting-a-base-in-the-middle.aspx

    От себя хотелось бы отметить, что был неприятно удивлён длинным и сбивчивым объяснением всех причин происходящего. По-моему, налицо нарушение принципа "Make everything as simple as possible, but not simpler".

    Это уже не первый такой хак в C#, и чем дальше - тем больше C# по сложности реализации начинает напоминать C++, в плохом смысле этого слова.
  • Господа,
    имеем: проект имеет несколько конфигураций (например: Debug_V1 и Debug_V3).
    вопрос: как в процессе выполнения программы определить, в какой из двух конфигураций прошла компиляция?
    В c++ это решалось легко и просто через defines. А вот в с# я что-то никак не найду...
  • День добрый. Пробую сделать сортировку в словаре

    Dictionary<long, string> builds;
    IEnumerable<KeyValuePair<long, string>> result= builds.OrderBy(i => i.Value);

    Т.е., OrderBy возвращает отсортированный словарь. А как сортировать данные внутри объекта? Вот дальше я, например, буду работать только с отсортированными данными. Мне придется работать с result? А если я захочу, скажем, воспользоваться методом Add(), то его, например, IEnumerable не имеет.


  • Программирование :: .NET технология от и до :: ASP.NET
  • Доброго времени суток! Когда пользователь запрашивает страницу и идет выполнение кода, то jit компилятор генерирует машинный код и кэширует его в папке Temporary ASP.NET Files. Так вот вопрос, этот машинный код сохраняется для всех последующих пользователей или существует только для текущего и будет удален, после его выхода? Заранее спасибо.
  • Если в ItemTemplate объекта ListView создать например кнопку или линк:


    Код:
           <ItemTemplate>
                     <asp:LinkButton runat="server" ID="btn1" Text="Button1" CommandName="btn1" CommandArgument='<%# Eval("Id") %>' />
            </ItemTemplate>

    то нажатие кнопки отлавливается в событии ListView ItemCommand.

    Всё замечательно. Всё работает.

    Теперь я вместо кнопки использую свой контрол, в котором есть кнопка.

    Код:
           <ItemTemplate>
                <myns:MyControl ID="MyControl1" runat="server" CommandName="btn1" CommandArgument='<%# Eval("Id") %>' />
            </ItemTemplate>

    Какое событие надо сгенерить в MyControl при нажатии на его кнопку, чтобы ListView среагировал ItemCommand-ом? Короче чтобы мой контрол вёл себя как кнопка.

    зы. Может это как-то по-другому делается?

    зы. зы. опыт работы с ASP 8 часов.
  • Программирование :: С/С++
  • возможно ли?
    имеется проект на Си. к нему надо подключить пару функций написанных на C++ в отдельных файлах.
    ("плюсов" в этих функциях - только декларация переменных в произвольных местах кода)
    компилятор CodeComposerStudio  под TMS-DSP, но не суть.
    он вроде позволяет в одном проекте раздельно компилить файлы С и С++....
    а вот как их заставить найти друг друга?
    (насчет extern "C" понятно, но у меня обратная задача)

    хотелось бы поменьше заморочек)
  • Проблема следующая: при преобразовании вещественных типов в строку, функция какого-то хрена дописывает к числу много нулей и единицу в последнем знаке. Мне кажется, что такое поведение функции не соответствует ее предназначению. Что это, баг, или я не учел какой-то нюанс?

    Вот пример:
    Код:
    #include <iostream>
    #include <boost/lexical_cast.hpp>

    using namespace std;

    int main()
    {
    string str;
    double d = 3.14;
    str = boost::lexical_cast<string>(d);
    cout << d << endl << str << endl;
    return 0;
    }

    Вывод программы:
    3.14
    3.14000000000000001

    При преобразовании к типу float, количество нулей заметно сокращается.
  • Программирование :: С/С++ :: WinAPI & Visual C++
  • При перекрытии окна другими окнами исчезает нарисованное... Как быть?
    Я рисую сначала в MemDC, потом то, что получилось отправляю в HDC.
    При перемещении окна нарисованное не пропадает, а при перекрытии/выходе окна за пределы монитора/свертывании/развертывании/изменении размеров окна - при всё при этом исчезает нарисованное.
    Почему при этих действиях не вызывается WM_PAINT? Как перерисовать?

    Код:
    //#include
    <windows.h>
    #include "KWnd.h"

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
    {

    MSG msg;
    KWnd mainWnd(TEXT("An application"), hInstance, nShowCmd, WndProc);

    while (GetMessage(&msg, NULL, 0, 0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }

    return msg.wParam;
    }

    LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rect;
    static HDC hMemDC;

    int xrand;
    int yrand;

    int Rrand;
    int Grand;
    int Brand;
    int iWidthRand;
    int iStyleRand;

    HPEN myPen;

    switch(uMsg)
    {
    case WM_CREATE:

    hDC = GetDC(hWnd);
    hMemDC = CreateCompatibleDC(hDC);
    break;

    case WM_PAINT:

    hDC = BeginPaint(hWnd, &ps);
    GetClientRect(hWnd, &rect);
    // Теперь копируем растр из памяти на экран
    BitBlt(hDC, 0, 0, rect.right, rect.bottom, hMemDC, 0, 0, SRCCOPY);
    EndPaint(hWnd, &ps);
    break;

    case WM_LBUTTONDOWN:

    hDC = GetDC(hWnd);
    if (hDC)
    {
    // рисуем что требуется
    MoveToEx(hDC, 50, 60, NULL);
    GetClientRect(hWnd, &rect);

    for (int i=0; i<10; i++)
    {
    // позиция по х и у, куда проводить линию
    xrand = rand()%(rect.right-100)+50;
    yrand = rand()%(rect.bottom-100)+50;

    // стиль (начертание) линии
    iStyleRand = rand()%7;

    // толщина линии
    iWidthRand = rand()%7;

    // цвет линии
    Rrand = rand()%256;
    Grand = rand()%256;
    Brand = rand()%256;

    // создаем карандаш
    myPen = CreatePen(iStyleRand, iWidthRand, RGB(Rrand, Grand, Brand));

    // выбираем наш карандаш
    SelectObject(hDC, myPen);

    // нарисовать линию
    LineTo(hDC, xrand, yrand);

    // освобождаем память из под созданного карандаша
    DeleteObject(myPen);
    }

    // освобождаем контекст
    ReleaseDC(hWnd, hDC);
    }

    break;

    case WM_DESTROY:
    DeleteDC(hMemDC);
    PostQuitMessage(0);
    break;

    default:
    return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }

    return 0;
    }

    Тут создание окна, ничего интересного:
    Код:
    #include <windows.h>

    class KWnd
    {
    public:
    KWnd(LPCTSTR windowName, HINSTANCE hInst, int cmdShow,
    LRESULT (WINAPI *pWndProc)(HWND, UINT, WPARAM, LPARAM),
    LPCTSTR menuname = NULL,
    int x = CW_USEDEFAULT, int y = 0,
    int width = CW_USEDEFAULT, int height = 0,
    UINT classstyle="CS_HREDRAW" | CS_VREDRAW,
    DWORD windowstyle="WS_OVERLAPPEDWINDOW,"
    HWND hParent = NULL);

    HWND GetHWnd() { return hWnd; }
    protected:
    HWND hWnd;
    WNDCLASSEX wc;
    };


    KWnd::KWnd(LPCTSTR windowName, HINSTANCE hInst, int cmdShow,
       LRESULT (WINAPI *pWndProc)(HWND, UINT, WPARAM, LPARAM),
       LPCTSTR menuName, int x, int y, int width, int height,
       UINT classStyle, DWORD windowStyle, HWND hParent)
    {
    TCHAR szClassName[] = TEXT("KWndClass");

    wc.cbSize = sizeof(wc);
    wc.style="classStyle;"
    wc.lpfnWndProc = pWndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInst;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
    //wc.hbrBackground = (HBRUSH)GetStockObject(COLOR_APPWORKSPACE+1);
    //wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszMenuName = menuName;
    wc.lpszClassName = szClassName;
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);


    if (!RegisterClassEx(&wc))
    {
    TCHAR msg[100] = TEXT("Cannot register class: ");
    wcscat_s(msg, 100, szClassName);
    MessageBox(NULL, msg, TEXT("Error"), MB_OK | MB_ICONERROR);
    return;
    }

    // по умолчанию окно располагается по центру
    // и имеет фиксированную высоту/ширину
    if (x == CW_USEDEFAULT && width == CW_USEDEFAULT)
    {
    // получаем разрешение монитора (1024х768)
    int xFullScreen = GetSystemMetrics(SM_CXSCREEN);
    int yFullScreen = GetSystemMetrics(SM_CYSCREEN);

    // размеры окна по умолчанию
    width  = 720;
    height = 540;

    // вычисляем позицию левого верхнего угла окна
    x = int(xFullScreen/2 - width/2);
    y = int(yFullScreen/2 - height/2);
    }

    hWnd = CreateWindow(szClassName, windowName, windowStyle,
    x, y, width, height, hParent, (HMENU)NULL, hInst, NULL);

    if (!hWnd)
    {
    TCHAR text[100] = TEXT("Cannot create window: ");
    wcscat_s(text, 100, szClassName);
    MessageBox(NULL, text, TEXT("Error"), MB_OK | MB_ICONERROR);
    return;
    }

    ShowWindow(hWnd, cmdShow);
    UpdateWindow(hWnd);
    }
  • Доброго всем времени всем. Пишу программу для записи звука с устройства записи на DirectSound. Имею на вооружении только DirectSound документцию. Впрограмме возникают пролемы с инициализацией определенных объектов, но есть сметные моменты и ранее, возможно они и привели к ошибкам позже.

    Необходимо сформировать список доступных устройств захвата. Реализация:

       //Объявляю CALLBACK функцию

    Код:
    BOOL
    CALLBACK EnumCallback (
        LPGUID GUID,
        LPCSTR Description,
        LPCSTR Module,
        VOID *Context
     )
    {
    std::ofstream FileLog_Dll("c:\\Progon.log",std::ios::app);
    std::cout<<"Enumerate is done"<<std::endl;
    FileLog_Dll<<GUID<<std::endl<<"--------"<<std::endl;
    Sleep(100);
    FileLog_Dll.close();
    return true;

    };

    //Далее после main(){

    Код:
    DWORD dError;
    HRESULT hresult;

    if ((hresult=DirectSoundCaptureEnumerate (
       (LPDSENUMCALLBACKW)EnumCallback,
       NULL))!=NULL)
    {
        std::cout<<"Error of enumerate devices"<<std::endl;
    dError=GetLastError();
    std::cout<<dError<<std::endl;
    };

    GUID в фай заносятся, а вот как мне сделать чтобы я мог ими в програме оперрировать, какого типа массив (или переменную) создать и запись в него осуществить? Может кто работал с Direct'ом?
  • Добрый день!
    У меня вопрос почему hr на операции get_Document при проверки выдает E_FAIL ,что может быть, уже все перепробовал.
    приложение консольное.
    Код:
    if (SUCCEEDED(OleInitialize(NULL)))
    {
       IWebBrowser2*    pBrowser2;
       IHTMLDocument2 *pHTML = NULL;
       IDispatch* pHtmlDocDispatch = NULL;
       IHTMLElementCollection *pElement = NULL;

       CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
                           IID_IWebBrowser2, (void**)&pBrowser2);
       if (pBrowser2)
       {
           VARIANT vEmpty;
           VariantInit(&vEmpty);

           BSTR bstrURL = SysAllocString(L"http://microsoft.com");

           HRESULT hr = pBrowser2->Navigate(bstrURL, &vEmpty, &vEmpty, &vEmpty, &vEmpty);
           if (SUCCEEDED(hr))
           {
               pBrowser2->put_Visible(VARIANT_TRUE);
           }
           else
           {
               pBrowser2->Quit();
           }
           hr = pBrowser2->get_Document(&pHtmlDocDispatch);
           pHtmlDocDispatch->QueryInterface(IID_IHTMLDocument2,(void**)&pHTML);
  • Доброго времени суток.
    я перешрл на мелкосовтовский компилятор с gcc.
    Решил написать консольную программу.
    раньше я пользовался функция getopt(...) и getopt_long (). для получения и обработки (argc, argv[] )

    какие есть стандартные функции в MFS для принятия параметров из командной строки (argc, argv[] )

    благодарю за внимание.
  • При перекодировании ANSI-строки (char *) в UNICODE-строку (wchar_t *) функцией MultiByteToWideChar длины этих строк всегда будут одинаковыми? (при использовании кодировки CP_ACP)
  • Всем привет!

    Изучаю сокеты в С++, использую MS VS 2008.

    Начал делать, как в умных книжках написано, и столкнулся с такой проблемой:
    gethostbyname() всегда возвращает ноль.

    Вот код:
    Код:
    #include "stdafx.h" // здесь подключены необходимые библиотеки

    using namespace std;

    #define MY_ADDR "localhost"
    #define PORTNUM 80

    int _tmain(int argc, _TCHAR* argv[])
    {
    setlocale(LC_ALL, "rus"); //включаем русский текст в консоле

    SOCKET s;
    sockaddr_in serv_addr;
    hostent *hp=NULL;

    s = socket(AF_INET,SOCK_STREAM,0);
    if(!s)
    {
    perror("Ошибка вызова socket() "); exit(0);
    }

    hp = gethostbyname(MY_ADDR);
    if(!hp)
    {
    perror("Ошибка вызова gethostbyname() "); exit(0);
    }

    serv_addr.sin_family = hp->h_addrtype;
    serv_addr.sin_port = htons(PORTNUM);

    cout << serv_addr.sin_family << endl
    << serv_addr.sin_port << endl;

    connect(s,(sockaddr*)&serv_addr,sizeof(serv_addr));

    closesocket(s);

    return 0;
    }

    Компилируется, запускается. В MY_ADDR пробовал адреса разных сайтов, но почему же gethostbyname() всегда возвращает ноль? Выход в Интернет есть. Локальный сервер запущен - localhost.

    Стал гуглить, у всех, вроде, возвращает нормальное значение.... В чем может быть дело, подскажите, люди добрые, пожалуйста?!  :-/

    Заранее спасибо за любые мысли =)
  • При запуске отладки в VC6.0 вдруг начал получать:

    "Please enter the path for vc60.pdb."

    В папке DEBUG такой файл есть, но получаю:

    "A file with the correct name was found in this directory, but it is not the correct one."

    Что это значит и как с этим бороться?

    Спасибо.
  • Просто для информации.


    Сегодня притащили MSDN с Premium. В очередной раз народ кинулся выяснять в чём отличие от Professional и Ultimate. Инфу найти несложно, но нужно искать и то, что найдёшь не всегда наглядно. Например тут. Я наткнулся на такую картинку (источник):

    (http://forum.shelek.ru/index.php?action=dlattach;topic=25041.0;attach=4974)
  • Добрый день.

    Возникла проблемы с использованием вложенных  в класс структурами.

    Есть .h файл, содержащий описание класса ZFTAWIHEs, с вложенными структурами HEsProfile и HEsHouse.
    Код:
    // ZFTAWIHEs.h: interface for the ZFTAWIHEs class.
    // #include "ZFTAWIHEs.h"
    //////////////////////////////////////////////////////////////////////
    class ZFTAWIHEs 
    {
    public:
    struct HEsProfile;
    struct HEsHouse;

    private:
    CPtrArray _houses;    // HEsHouse*
    CPtrArray _prfs; // HEsProfile*

    public:
    void addProfile( HEsProfile* prf );
    void setNewStatus( CString code, HEsProfile* prf, int newStatus );

    ZFTAWIHEs();
    virtual ~ZFTAWIHEs();

    //////////////////
    public:
    struct HEsProfile
    {
    CString _code;
    CString _name;
    CMapStringToPtr _mapHes; // CString->HEsHouse*
    };

    //////////////////
    public:
    struct HEsHouse
    {
    CString _prfCode;
    CString _heCode;
    };
    };
    И есть другой класс ZFTADB, использующий эти структуры.
    Код:
    // ZFTADB.h: interface for the ZFTADB class.
    // #include "ZFTADB.h"
    //////////////////////////////////////////////////////////////////////
    #include "ZFTAWIHEs.h"
    ////////
    class ZFTADB 
    {
    public:
    bool saveHEsHouse( ZFTAWIHEs::HEsHouse* hou, bool bnew );
    };

    Проблема:
    ZFTADB.h говорит
    D:\............\ZFTADB.h(30) : error C2027: use of undefined type 'ZFTAWIHEs'
            D:\....\ZFTADB.h(28) : see declaration of 'ZFTAWIHEs'

    Не могу ни за что уцепиться.
    Может быть кто-нибудь видит в чем я туплю.

    Спасибо.




  • Программирование :: Delphi
  • создаю обработчик

    Код:
      DM.AConnect.begintrans;
          {Ставим защитный блок try-except}
         try
             dm.L_schetInsProc.ExecProc;
    использую ADO для доступа к mssql 2000
    вот кусок кода
    Код:
           {Если возникло исключение}
          except

           on EDBEngineError do

            {Откатываем транзакцию}
             DM.AConnect.RollbackTrans;
            {Сообщаем пользователю об ошибке}
             ShowMessage('Операция не удалась. Повторите попытку.');
            {Отменяем изменения внесенные пользователем}
            exit;
            end;

          end;
        {Если исключений не возникло при сохранении,
        то подтвердить транзакцию}
        DM.AConnect.CommitTrans;
    Пишет что [Pascal Error] UL_Schet.pas(286): E2003 Undeclared identifier: 'EDBEngineError'
  • Пожалуйста, подскажите как лучше работать с данными документа, с реквизитами шапки документа и его табличной частью.
    Используется две таблицы, одна хранит реквизиты самих документов, другая - их табличные части. :-/
    При создании нового документа надо "привязать " его табличную часть к несохраненной еще части документа, а пользователь может на каком-то этапе прервать операцию, отказаться от ввода документа. Отдельно создано еще 2 временные таблицы, куда первоначально накапливается информация, затем при подтвержении записи - это переносится хранимой процедурой в рабочие таблицы. Есть ли другие варианты? :dontknow:
  • Как отследить изменение "вручную" контента в TWebbrowser?
    Естественно в режиме designmode := 'on'
    Под изменением я понимаю печать с клавиатуры, вставку и удаление контролов и символов.
    Спасибо за любую идею
  • Здравствуйте!
    Сразу хочу предупредить что возможно название темы может не соответствовать задаче которую я хочу решить=)
    И так к делу
    Я преобрёл один SDK пакет для работы и разработки программного обеспечения для одного замечательного девайся, а именно считывателя бесконтакных карт.
    Производители мне прислали два файда с расширением *.PAS в которых описанны типы данных и функции и DLL файл который я так понимаю уже содержит в готовом виде эти функции, а также FAQ с описанеи для чего их можно применять.
    Вот что написанно в этих файликах:
    uZ2uImport.pas
    Код:
    unit uz2uImport;

    interface

    uses
      uz2uTypes;

    function z2uGetVersion(): Cardinal; stdcall;

    // Поиск считывателей

    function z2uFindFirstReaderA(APort: PAnsiChar; ARdType: Tz2uReaderType;
                                var VInfo: Tz2uFindReaderInfoA):THANDLE; stdcall;
    function z2uFindFirstReaderW(APort: PWideChar; ARdType: Tz2uReaderType;
                                var VInfo: Tz2uFindReaderInfoW):THANDLE; stdcall;
    function z2uFindNextReaderA(AFind: THANDLE;
                                var VInfo: Tz2uFindReaderInfoA): Boolean; stdcall;
    function z2uFindNextReaderW(AFind: THANDLE;
                                var VInfo: Tz2uFindReaderInfoW): Boolean; stdcall;
    function z2uCloseFindReader(AFind: THANDLE): Boolean; stdcall;

    и файл uZ2uTypes.pas
    Код:
    unit uZ2uTypes;

    interface

    {$A-} // packed types

    Const
      z2uMAXCOMNAME    = 16;
      z2uMAXMANUFACTOR = 250;

    Const
      z2uerrSUCCESS         = 0;  // Операция выполнена успешно
      z2uerrUNKNOWN         = 1;  // Незвестная ошибка
      z2uerrINVPARAM        = 2;  // Неверные параметры
      z2uerrRDNOTFOUND      = 3;  // Считыватель не найден
      z2uerrCARDNOTFOUND    = 4;  // Карта не найдена
      z2uerrRDACCESS        = 5;  // Нет доступа к считывателю
      z2uerrCARDACCESS      = 6;  // Нет доступа к карте
      z2uerrPAGELOCK        = 7;  // Страница заблокирована
      z2uerrNOMOREITEMS     = 8;  // Нет больше элементов (для поиска)

    Я так понял что эти два файла это просто исходники этой библиотеки, которые по сути прикручивать некуда и ненадо. Нужно прикрутить ихнию DLL к моей программе и функции описанные в ней станут доступны для использования. Теперь вопрос как мне прикрутить эту DLL к программе???

    В прилагающемся FAQ я нашёл пример кода:

    Код:
    program FindReadersSample;

    {$APPTYPE CONSOLE}

    uses
      SysUtils,
      uz2uImport, uz2uTypes;

    var
      hFind: THANDLE;
      Info: Tz2uFindReaderInfoA;

    begin

    Что в разделе USES идёт обращение к этим файлам. Так же мне непонятно следующее: чтобы указать их в USES мне получается просто нужно положить эти *.PAS в каталог с моими исходниками, указать их в USES, далее в коде моей программы применять эти функции, после компеляции моей программы , я получается просто кладу эту DLL рядом со своим EXE файлом ? так чтоли?
    Помогите плиз в голове каша просто :confused:
  • Привет
    Как я могу делать Insert из Datetimepicker в таблицу в SQL Server - е без исползование параметра?
  • Программирование :: VisualBasic
  • Скажите,на Visual Basic v6.0 можно написать,прогу которая будет авторизироваться вконтакте методом пост,и например поменяю статус програмно,просто очень хочется написать прогу такую типа агента а с пост понять не могу(Прошу помощи если не трудно..
    Очень прошу если есть дайте рабочий исходник...
  • Программирование :: VisualBasic :: Visual Basic for Applications
  • Дорбый день!  :)

    Сделал руками:

    Range("A11").Select
        ActiveWindow.SmallScroll Down:=87
        Range("A11:J500").Select

    Очень хочу научиться вместо "500" получать количество заполненных строк.
  • Всем привет! Помогите разобраться с проблемкой. Есть папка с файлами (названия разные и регулярно меняющиеся), но расположение папки и её наименование постоянно. Макрос находится в отдельном файле, в другой папке. Как прописать последовательное открытие файлов для их обработки? Или, как вариант (не такой удобный, но все же приемлемый) - как макросом перенести список названий файлов из папки на страницу основного файла?
  • Имеем таблицу MS Word

    № п/пФамилия Имя Итчество Должность Организация
    1 Малахов Андрей Иванович Директор ООО «Центр»
    2 Сидоркина Нина Михайловна Главный Бухгалтер ООО «Центр»
    3 Козликов Николай Андреевич Генеральный директор ООО «Сапфир»
    4 Мартемьянов Игорь Александрович Главный инженер  ООО «Сапфир»

    Хочу нажав там кнопку получить в MS Word то что ниже
     
    Уважаемый(-ая) Малахов Андрей Иванович
    Приглашаем вас на празднование нового года, которое состоится н часов в н-ске.
    -----------------------------------------------------------------------------
    Уважаемый(-ая) Сидоркина Нина Михайловна
    Приглашаем вас на празднование нового года, которое состоится н часов в н-ске.
    -------------------------------------------------------------------------------
    Уважаемый(-ая) Козликов Николай Андреевич
    Приглашаем вас на празднование нового года, которое состоится н часов в н-ске.
    ----------------------------------------------------------------------------
    Уважаемый(-ая) Мартемьянов Игорь Александрович
    Приглашаем вас на празднование нового года, которое состоится н часов в н-ске.

    Скинте пример пожалуйста.
  • Ребята! Помогите разобраться с буфером обмена. Задача выглядит так:
    1. Выделить содержимое документа.
    2. Скопировать содержимое документа в буфер обмена.
    3. Закрыть текущий документ.
    4. Создать новый документ.
    5. Вставить в него текст и объекты из буфера обмена.
    6. Сохранить документ под прежним именем

    всё бы ничего, но 5 пункт не работает! Не могу понять почему...=((

    Делаю так:

    Sub Perenos()
        Selection.WholeStory
         Selection.Range.Copy
        NameD = ThisDocument.Name
     Set WordApp = New Word.Application
    WordApp.Visible = True
    Set DocWord = WordApp.Documents.Add
    DocWord.Activate
     Selection.WholeStory
    DocWord.SaveAs NameD
    Selection.Range.Paste
    ThisDocument.Close True
    End Sub
     
    Помогите найти ошибку!


  • Программирование :: VisualBasic :: Visual Basic .NET
  • CheckedListBox: как в цикле отметить записи или снять отметки
    В приведенных НЕРАБОТАЮЩИХ примерах показано, что надо.
    Подскажите, пожалуйста, как это сделать.
    Я и в МСДН смотрел, и экспериментировал - не получилось.
    Спасибо за внимание.

    Код:
    For Me.i = 0 To CheckedListBox1.Items.Count - 1
                CheckedListBox1.Items(i) = True
    Next
    For Me.i = 0 To CheckedListBox1.Items.Count - 1
                CheckedListBox1.Items(i) = False
    Next
  • Как в программе на VB 2008 присвоить имя фонта для контрола CheckBox, например:
    CheckBox1.Font.Name = "Arial"
    При таком написании получаю сообщение "Prperty "Name" is ReadOnly"
    VB6 такое позволял, а как здесь?
    Благодарю за внимание
  • Программирование :: Perl
  • Очень грептит реализовать нетривиальную задачу, а именно - генерация заданного рамками айпишника ;). Как генерировать рандомно число, я знаю, а как быть в этом случае, допустим, задал промежуток 1.1.1.1 - 5.5.5.5 , каким образом реализовать генерацию ипа? Полностью генерировать видимо не получится, для каждого числа брать отдельно переменную, а потом объединять в одной переменной все или есть какой-то другой способ... Очень прошу помочь, а то от такой жары плавится мой компьютер и мои мозги, ну никак не соображу, как тут быть, а очень хочется, заранее спасибо большое! :)
  • Программирование :: Программирование 1С
  • Есть пока теоретическая задача запустить 1C 7.7 (бухгалтерия и склад) на виртуальной машине (предположительно Linux 2.6 и Xen 3.0) и пробросить внутрь hasp-ключ LPT. К сожалению, экспериментировать не на чем, т.к. нет двух ключевых компонент - лишнего ключа и машинки с поддержкой виртуализации.

    Если кто-нибудь пробовал это, то ответьте, пожалуйста, на пару вопросов:
    1. Эксперимент удался?
    2. Если удался, то это просто тест или пошло в эксплуатацию?
    3. Какая система виртуализации, хостовая ОС, версия 1С и тип ключа (LPT, USB) использовались?
  • Перенос данных из Бух Учета в Торговлю и склад (Нужен совет)
    Первых два квартала учет велся в конфигурации бухгалтерский учет(в данной же конфигурации ведется и основное производство), на днях купили ТиС, теперь нужно все доки поступления перенисти в торговую конфу (в основном Авансовые отчеты).... кто-нибудь встречался с такой ситуацией??? подскажите какой алгоритм переноса документов????  :confused: :confused: :confused:
  • Вот тут решил разобраться с подчиненными справочниками. В своем самоучителе ничего стоящего не нашел, к сожалению. И решил воспользоваться методом "научного тыка"=) Задумал вывести на экран всех жильцов дома(Справочник:квартиры)В нем есть периодический реквизит жилец. Создал еще один справочник ЖеныЖильцов и подчинил его квартирам. Вбил через предприятие для каждого наименования пару новых в ЖеныЖильцов.
    Вот получилось как то так:
    Код:
    Процедура Сформировать()
    перем кв,пер;
    кв=создатьОбъект("справочник.квартиры");
    пер=создатьОбъект("справочник.ЖеныЖильцов");
    кв.ВыбратьЭлементы();
    Пока кв.получитьЭлемент()=1 Цикл
    Сообщить(кв.наименование);
    пер.ИспользоватьВладелца("справочник.Квартиры");
    пер.ВыбратьЭлементы();
    Пока пер.получитьЭлемент()=1 Цикл
    Сообщить(" "+пер.наименование);
    КонецЦикла;
    КонецЦикла;
    КонецПроцедуры
    Он выдал мне ошибку, когда я нажал сформировать:
    Сообщить(кв.наименоване);
    {D:\ДОКУМЕНТЫ\EXTFORMS\ЖЕНЫ.ERT(8)}: Поле агрегатного объекта не обнаружено (наименоване)

    Хотелось бы узнать я в правильном направлении иду или тут в корне все неверно??
  • Недавно пришел работать в одну контору где уже стояла и была настроена 1С.
    Все выглядит следующим образом: в бухгалтерии 5 компов в сетке через свич. На компе главбуха база 1С в расшаренной папке. Везде стоит 1С Предприятие 7.7 (сетевая версия) (7.70.025). На компах в сети прописан путь к базе так: "\\Pc-5\1c_base\config\". Все работает, но есть проблема.
    Если 1с запущена только на одном компе, то все работает очень шустро, но стоит только запустить 1с-ку хотя бы еще на одном компе работа идет очень медленно, вместо обычных 2-4 сек документ может формироваться по 5-7 мин(!!!). Причем на компе главбуха, где хранится база, все летает постоянно без разницы запущена прога еще где-нибудь или нет. Такая проблема наблюдается только на компах, обращающихся к базе по сети.
    Хочу спросить у опытных людей можно ли с этим что-то сделать и если да то как все правильно настроить.
  • Я всех приветствую. Народ, дело такое- немогу выполнить задание. 1С только начал изучать на курсах. Задание такое: Есть справочник(квартиры), в нем периодический реквизит(жильцы). Надо вывести их просто на экран( видимо методом "сообщить"). Создал справочник, реквизит, через предприятие вбил 5 жильцов.
    Ну и создал документ( Обзор жильцов)
    В модуле написал так:

    Код:
    Процедура ОбработкаПроведения()

        Перем А;
    А=СоздатьОбъект("Справочник.Квартиры");
    Пока А.ВыбратьЭлементы()=1 Цикл
    А.ПолучитьЭлемент();
    Сообщить();
    КонецЦикла;
    КонецПроцедуры

    Дальше интересней) Предприятие зависло=) ни ошибки ни жильцов не вывело и на команды не отвечает. А закрывается только через Ктрл+Альт+Делит=). Может кто подсказать что я пропустил а то я даже не знаю где ошибку искать. Подсказали, что к периодическим р. обращаться нужно через переменную и тоже при помощи цикл. Как это в модуль вбить подскажите плз. Заранее спасибо всем.
  • Программирование :: Программирование 1С :: 1С 7.x
  • Всем доброго дня.
    Озадачил меня главбух следующим: для каждого контагента есть свой список договоров. Нужно для каждого договора прикрутить еще выбор кредитного договора. Это я сделал, создал соответствующий справочник, добавил в форму договора нужный параметр этого типа. Но. Когда нажимаю выбор кредитного договора нужно сначала выбирать контрагента, затем договор, а только после этого уже попадаешь в справочник кредитных договоров.
    Как сделать чтоб при выборе кредитного договора я попадал в нужный список для соответствующего контрагента и договора?
  • Всем здравствуйте. Подскажите пожалуйста с таким вопросом.
    Каким образом можно сделать выборку по справочнику в котором имеются периодические реквизиты
    Например справочник сотрудники. и периодический реквизит долг.
    Код:
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы все;
    |Код = Справочник.Сотрудники.Код;
    |Долг = Справочник.Сотрудники.Долг; // это периодический реквизит
    |Группировка Код;
    |Условие(Остаток>0);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей Код
    Таб.ВывестиСекцию("Код");
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
  • Программирование :: Программирование 1С :: 1С 8.x
  • во время выполнения обмена данными по узлу выскакивает ошибка "МодульВнешнегоСоединения: Метод объекта не обнаружен (ПользовательОпределен)

    код процедуры в которой выскакивает данная ошибка:

    Код:
    Процедура ПриНачалеРаботыСистемы()

    Если ИмяПользователя() = "_ТестированиеРолей" Тогда
    Возврат;
    КонецЕсли;

    // Вызов исключения, если не прошла процедура определения пользователя
    УправлениеПользователями.ПользовательОпределен();

    КонецПроцедуры
  • Доброй ночи Уважаемые. Столкнулся с такой проблемой.
    Выгрузил в текст справочник базы 7ки.  Некоторые реквизиты пустые. соответственно имеются пустые строки. Получилось около 50 000 строк. При обработке все это зависает :(.
    При Этом если выгружать не все реквизиты справочника 7ки. а только половину то все нормально обрабатывается

  • Имеется: 1)  ТаблицаЗначений с несколькими колонками, одна из которых "ПКонтрагенты"
                  2)  СписокЗначений с контрагентами.
                    
    Необходимо упорядочить строки в ТаблицеЗначений по колонке ПКонтрагенты в таком же порядке как расположены значения в СписокЗначений.
     делаю следующее:

                  
    Код:
                    Для Каждого Элемент Из СписокЗначений Цикл  
    СтрокаТЗ = ТаблицаЗначений.Найти(Элемент);
    ОбластьСтрокаДвижения.Параметры.Расшифровка = СтрокаТЗ.ПКонтрагент;
    ОбластьСтрокаДвижения.Параметры.Заполнить(СтрокаТЗ);
                    ТабДок.Вывести(ОбластьСтрокаДвижения);
          
    Выдает ошибку:

           Значение не является значением объектного типа (ПКонтрагент)
          ОбластьСтрокаДвижения.Параметры.Расшифровка = СтрокаТЗ.ПКонтрагент;

  • Необходимо получить Расшифровку при даблклике на ячейку(ячейка содержит краткое наименование контрагента).
    Расшифровка здесь - это печатная  форма документа АктСверкиВзаиморасчетов для выбранного контрагента за определенный (в отчете) период.

    В обработчике событий ОбработкаРасшифровки у ПолеТабличногоДокумента пишу следующий код
    Код:
    Процедура РасшифровкаАктВзаиморасчетов(Элемент, Расшифровка,
    СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    форма = Документы.АктСверкиВзаиморасчетов.ПолучитьФорму("ФормаДокумента");

    Форма.ЭлементыФормы.Контрагент = Расшифровка;
    Форма.ЭлементыФормы.ДатаНачала = ДатаНач;
    форма.ОткрытьМодально();
    КонецПроцедуры

    Выдает ошибку : Поле объекта недоступно для записи (ДатаНачала)

    1. Как сделать так чтобы при нажатии на ячейку с контрагентом выбирался тот контрагент, который в ячейке
    (Расшифровка = ?).

    2. В правильном ли я направлении?

  •   Задача: Создать расшифровку
    1. Макет -> свойствах ячейки -> Пишу параметр расшифровки "Расшифровка".
    2. Поле табличного документа -> Свойства -> События -> Пишу имя процедуры "РасшифровкаАктВзаиморасчетов" в событии ОбработкаРасшифровки.
     
    Код:
    Процедура РасшифовкаАктВзаиморасчетов(Элемент, Расшифровка, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    ТипРасшифровки = ТипЗнч(Расшифровка);
    форма = ПолучитьФорму("ФормаДокумента",Документы.АктСверкиВзаиморасчетов,);
    форма.ОткрытьМодально();

    КонецПроцедуры

      Вопрос: Почему расшифровка не активируется : курсор мыши не изменяется и сама процедура не выполняется?

  • Коллеги, день добрый!

    "Управление торговлей" платформа 1С 8.1 редакция 2.0
    "Бухгалтерия" платформа 1С 8.1 редакция 2.0

    Сразу говорю, 1С тока начинаю понимать.

    Необходимо сделать выгрузку данных из "Управление торговлей" в "Бухгалтерию".  Как делать загрузку разобрался( делаем загрузку не через файл, а непосредственно подключаемся к базе "Бухгалтерия"). База "Бухгалтерия" пустая, т.е. из "Управление торговлей" грузится всё, включая справочники. Не могу понять некоторые настройки.

    1).Необходимо загрузить только документы по приходам и документы по реализации. Всякие банковские выписки не нужны. Не нашёл данную настройку. Грузится всё.Буду рад если подскажите где она находится.

    2).После загрузки данных в "Бухгалтерию" рождаются проводки по закупкам и реализации. Непонятно, каким образом "Бухгалтерия" определяет по какому счёту создавать проводки. Точнее, как определяет счёт проводки понятно, непонятно, почему одни номенклатуры грузятся с одним счётом, а другие с другим. Как я понимаю, при выгрузке данных из "Управление торговлей" у номенклатуры есть какой-то признак (который указывается именно в "Управление торговлей") по которому "Бухгалтерия" прописывает счёт в карточку номенклатуры.
  • Добрый день. Учусь, пытаюсь создать небольшую конфигурацию!

    Имею:

    Документ "ОформлениеСкидки". В нем среди реквизитов, имеются "НомерДисконтнойКарты", с типом СправочникСсылка.СписокДисконтныхКарт,  и "ПроцентСкидки", тип Число.

    Также имеются справочники: "СписокДисконтныхКарт" и "СписокПроцентныхСкидок".

    В справочнике "СписокПроцентныхСкидок" используется Наименование и реквизит "ЗначениеСкидки" - с типом число, который и содержит значение скидки.

    В справочнике "СписокДисконтныхКарт", среди реквизитов имеется "ПроцентнаяСкидка" с типом: СправочникСсылка.СписокПроцентныхСкидок.

     

    Как правилько сделать, чтобы в Документе "ОформлениеСкидки", при изменении реквизита "НомерДисконтнойКарты", автоматически заполнялся реквизит "ПроцентСкидки". Это мне нужно для дальнейшего расчета оплаты.
    Если что-то еще необходимо сообщить, либо выслать - без проблем! Буду очень рад вашей помощи !
  • Вопрос такой есть:
    Можно ли сумму задолженности контрагенту/контрагента как-нибудь поправить руками, не проводя дополнительных документов?
  • Имеется Поле списка.
    Необходимо сохранить этот список.
    При последующем открытии внешнего отчета поле списка должно быть заполнено сохраненным.
  • В режиме интерфейса кассира в 1с при печати чека ККМ обрезаются последние
    четыре символа из стоимости товара, т.е. вместо строки
    1.000 х 89.00
    пробивается строка
    1.000 х 8
    Выравнивание по правому краю, последний напечатанный символ стоит в крайней правой позиции
    принтер документов: FPrint-5200
    версия 1с: 8.1.15.14
    конфигурация: УТ 10.3.10.4
    обработка обслуживания из комплекта конфигурации: ATOLFiscalPrinters_v2.epf
    версия обработки обслуживания: 2,25
    драйвер принтера из комплекта ПД: 6.10.4.5068
  • Добрый день

    есть Документ в ФормаСписка которого должны отображаться данные только за неделю и иметь фиксированный интервал, то есть неделя началась с понедельник 00 ч 00 м 00 с и закончилась в воскресенье 23 ч 59 м 59 с после чего ФормаСписка должна быть пустой и пользователи вносили свежие данные в данный Документ

    каким образом это все реализовать в конфигураторе и какое необходимо выбирать событие в ПолеВвода с ТипЗначения Дата ??
  • Программирование :: Авторское ПО
  • Создал программу учёта товаров, прошу дать оценку!
    Мне важно Ваше мнение, критика ...

    Подробная информация и сама программа здесь!
    h**p://warehous.at.ua

    (http://i9.fastpic.ru/big/2010/0816/b1/3b084c699162e02ff72b0df2fb682ab1.jpg)
     
    Предназначена для автоматизации учёта товаров на складе и обеспечения возможности
    ведения торговли на предприятии с учётом всех операций пользователей программы.
    Создавалась для предпринимателей и предприятий малого и среднего бизнеса.
    Отличается простотой использования и интуитивно понятным интерфейсом.

    Выполняемые функции:
    Создание и учёт приходных и расходных накладных.
    Оформление и учёт счетов.
    Резервирование товара для потенциального покупателя с автоматическим снятием товара с резерва.
    Оформление и учёт документов на доставку товара покупателю по указанному им адресу.
    Выполнение инкассаций проведённых товарных чеков.
    Оформление налоговой накладной.
    Возможность загрузки прайс-листов поставщиков из файла Excel в нуменклатор программы!
    Удобная инвентаризация склада, быстрый прайс-лист для покупателей.
    Оформление и учёт платёжных банковских поручений.
    Ведение истории наличия товаров на складе на начало рабочего дня.
    Оперативное изменение цены, как на весь товар, так и на отдельные группы товаров.
    Ведение журнала действий, выполняемых пользователем программы.
    Возможность работы с различными типами валют и различными единицами измерения товара.
    Возможность оплаты покупателем товара в наличной, безналичной форме.
    Печать ценников на товар с возможностью оперативного изменения цены на товар.
    Експорт\импорт отчётов и документов в различные форматы (Excel, Word, Internet Explorer)
    Печать штрих-кода (Code 128 и т.п.) на товар из базы данных и по шаблонам (например для дисконтных карточек покупателей)
    Возможность ведения торговли с использование сканера штрих-кода (например "Metrologic MS9500 Voyager" и др.)
    Возможность оформления фискальных чеков на товар с использыванием фискального регистратора - "DATECS FP3530T"

    Ведение статистики по:
    - приходным и расходным документам.
    - оперативные текущие продажи.
    - поставщикам товаров.
    - покупателям товаров.
    - отложенному товару, для потенциальных покупателей.
    - текущим оперативным продажам.
    - оформленным доставкам на товар.
    - инкассациям за период времени.
    - остаткам товара на складе.
    - прибыли за период времени.
    - движению отдельной единицы товара за период времени.

    Программа реализует учёт:
    - движения товаров по нескольким Вашим предприятиям с одного склада.
    - поступлений товара от поставщиков.
    - возвратных накладных на товар для поставщиков.
    - движения товара по покупателям.
    - оформление и учёт возвратных накладных для поставщиков.
    - оформление гарантийных талонов для различных категорий товаров.

    Дополнительно:
    - используются справочники - предприятий, покупателей, пользователей, товаров, категорий цен, нуменклатор товаров, валют и т.п.
    - возможность работы с различными типами валют.
    - обеспечивается высокая скорость работы программы даже на маломощных компьютерах.
    - функция автоматического востановления базы данных на случай внезапного сбоя.
    - ежедневное автоматическое создание бэкапа базы данных при старте программы.
    - функция быстрой очистки информации в базе данных.
    - автоматическое обновление программы через сеть Интернет.
    - On-Line поддержка пользователей (помощь по функционалу программы, инсталляции, устранение ошибок и пр.)
    - данная версия программы поддерживает только однопользовательский режим работы.
  • Здравствуйте.
       Предлагаю всем кому интересно по тестировать дизассемблер для 16/32/64-битного кода. В общем-то он уже не плохо работает, не падает при дизассемблировании больших файлов. Есть возможность ассемблирования отдельных мнемоник, почти как в OllyDbg. Прилагается очень подробная справка.

    Единственное ограничение это то что работать будет только под управлением Win64.
    Скачать можно по прямой ссылке: http://dsmhelp.narod.ru/dsmhelp0.6.zip
  • Операционные системы :: Windows
  • Please help!!!
    Windows server 2003 не загружается
    после интерфейса загрузки windows server 2003
    появляется синий экран с надписями но их невозможно переписать так как через доли секунды он пропадает и сервер снова перезагружается((


    сервер hp proliant ml350


    как на windows server 2003 войти в безопасный режим.
    и пожалуйста поподробней если можно я пока молодой в этих OS
  • Операционные системы :: Unix и другие :: Linux
  • здравствуйте, все.

    тяжелая жизнь вынудила меня использовать на работе openSUSE. поставила себе 11.2-ую версию дистрибутива.
    возникла необходимость соединяться с удаленной машиной по VPN с, насколько я понимаю, дополнительным шифрованием трафика, для чего используется aladdin eToken PKI client.

    установила себе единственную доступную версию этой программы под linux - 5.0, взятую отсюда http://www.aladdin.ru/support/download/464/. программа установилась, но на файл с ключом грязно выругалась. и kde-шные приложения перестали запускаться. перезапустить kde не удалось: было сказано что
    Цитировать
    kstartupconfig4 does not exist of fails. The error code is 127.
    при попытке запуска kstartupconfig4 вручную генерировалась ошибка о том, что в какой-то библиотеке (не помню точно в какой) undefined symbol.
    kde вылечилась удалением пакета с пресловутым PKI клиентом.

    к сожалению, я не могу понять что именно делает этот PKI client: то, что удалось найти в интерне какое-то размытое и не дает общего представления. поэтому помогите, люди добрые, кто сколько может: объясните, как подружить эту программу с kde, либо подскажите альтернативу (программы. не kde).

    спасибо.
  • Создание динамически измянеямого рисунка рабочего стола для GNOME 2.28 и выше

    Сведения частично почерпнуты отсюда http://www.linuxjournal.com/content/create-custom-transitioning-background-your-gnome-228-desktop

    В версии Gnome 2.28 появилась возможность, динамического изменения картинки рабочего стола. Характер изменений (длительность, какая именно картинка) хранятся в xml файле. Который можно подключить затем к менеджеру рабочего стола.

    Чтоб не писать вручную xml файл, я накидал небольшой скриптик, который формирует файл настройки.
    Код:
    #!/bin/bash
    direct=`pwd`;
    duratstat=1795.0;
    duratdin=5.0;
    first="";
    cat << EOF
    <background>
      <starttime>
        <year>2009</year>
        <month>08</month>
        <day>04</day>
        <hour>00</hour>
        <minute>00</minute>
        <second>00</second>
      </starttime>
    <!-- This animation will start at midnight. -->
    EOF

    for loop in `ls ${direct}`
    do
       if [ -z $first ]; then
    first=$loop;
       else
    cat << EOF
        <to>$direct/$loop</to>
      </transition>
    EOF
       fi
    cat << EOF
      <static>
        <duration>$duratstat</duration>
        <file>$direct/$loop</file>
      </static>
      <transition>
        <duration>$duratdin</duration>
        <from>$direct/$loop</from>
    EOF
    done
    cat << EOF
        <to>$direct/$first</to>
      </transition>
    </background>
    EOF
    Остается только накидать картинки в отдельный каталог. В консоле перейти в этот каталог и запустить скрипт.
    Переменная duratstat - Сколько картинка будет отображаться в секундах. Переменная duratdin - сколько секунд будет происходить переход.
  • Операционные системы :: Embedded systems
  • Привет.
    Столкнулся с необходимостью проверки на эмуляторах.
    Может может кто посоветовать какой выбрать?
    Пока остановил выбор на трех...
    Bochs   QEMU   Xen
    Их объединяют общие необходимые мне условия: эмуляция первичного загрузчика, работа из под win х86.
  • Направления программирования :: Drivers
  • Решаю всю ту же проблему, что была обозначена в конце темы http://forum.shelek.ru/index.php/topic,24622.0.html. А именно, мой USB-девайс при работе с драйвером, созданным в DS 3.2 пропускает данные на медленных машинах (PIV) и не пропускает данные на машине Core 2 Duo, при условии, если не запущены приложения, требующие значительных ресурсов (Opera). Отсюда сделал вывод, что пропуски могут проходить на уровне драйвера. Девайс работает следующим образом: подготовив данные для передачи по USB (заполнив FIFO UDP-модуля контроллера, отвечающего за работу с USB), ставит флаг готовности для передачи пакета данных размером 60 байт по USB. Далее ожидает, пока придет запрос от Хоста и уже после этого начинает передачу данных. Запросы формирует драйвер, который в свою очередь принимает их от приложения. Если я правильно понял, то в медленных или загруженных другими приложениями эти запросы могут задерживаться и в случае маленького буфера для запросов - теряться. Таким образом, какой смысл делать большой буфер для принимаемых драйвером от девайса данных, если при этом запросы на считывание этих данных приложением будут поступать с той же  частотой или реже?
    Что вы посоветуете для решения подобной проблемы?
    Заранее благодарен!
  • Всем привет!

    Тема создаётся в продолжение этой темы.
    Здесь я хочу попытаться выяснить, что же всё-таки делает функция GetScatterGatherList().

    Есть у меня в драйвере обработчик запроса чтения IRP_MJ_READ.
    В этом обработчике среди прочего я вычисляю необходимое кол-во регистров отображения:
    Код:
     mapRegsNeeded = ADDRESS_AND_SIZE_TO_SPAN_PAGES(MmGetMdlVirtualAddress(pIrp->MdlAddress), 
      pDevExt->ReadTotalLength - pDevExt->ReadOffset);

    Затем определяю виртуальный адрес пользовательского буфера
    Код:
     baseVa = MmGetMdlVirtualAddress(pIrp->MdlAddress + pDevExt->ReadOffset);

    И запускаю непосредственно GetScatterGatherList()
    Код:
    status = pDevExt->pReadAdapter->DmaOperations->GetScatterGatherList(pDevExt->pReadAdapter,
    
    pDeviceObject,
    pIrp->MdlAddress,
    baseVa,
    pDevExt->ReadLength,
    ReadAdapterControl,
    pIrp,
    FALSE)// transfer to buffer from device

    Вот создала эта функция Scatter-Gather список. Дальше автоматом вызывается функция ReadAdapterControl().

    Вопросы.

    Нужно ли в функции ReadAdapterControl() делать явное копирование данных в MDL-буфер?
    Если не нужно, то в какой момент данные попадают в MDL-буфер?

    Примечание. Вообще-то я думал, что функция GetScatterGatherList() как-то сама перемещает данные из устройства в MDL-буфер, а функция ReadAdapterControl() нужна только для того, чтобы сохранить указатель на S/G-список и перейти к следующему элементу S/G-списка. Но попробовал на практике и само собой после выполнения GetScatterGatherList() исходный MDL-буфер остался нетронутым. Поэтому и спрашиваю.


    P.S. Очкарик, я прошу прощения, потому что наверно достал тут уже всех своими темами, но разобраться очень надо :shuffle:
  • Всем привет.

    У меня есть устройство — ПЛИС (Xilinx® Spartan-6 FPGA SP605).
    Нужно реализовать для него драйвер, работающий в режиме Bus Master DMA.
    Как это примерно сделать описано в xapp1052. Скачал архив для этого xapp1052, установил оттуда прошивку, поставил драйвер, dll-библиотеку и приложение для тестирования. Приложение работает, всё ок.
    Стал разбираться с реализацией драйвера и сразу возникло много вопросов..
    В драйвере практически нет стандартных DMA-функций типа WdfDma* 
    В частности, нет функции для определения профиля DMA-устройства (WdfDmaProfile*), нет функций для работы с DMA-транзакциями (WdfDmaTransaction*) и многих других, казалось бы, необходимых функций.

    Вопрос для тех, кто возможно работал с этим xapp, как всё-таки реализован DMA в этом драйвере?
    Вопрос ко всем остальным, как может быть организован DMA без этих функций?

    С уважением,
    Сергей
  • Всем привет!

    Сейчас разбираюсь с WDM-драйверами.
    Смотрю пример. Для отладки функциями KdPrint() по ходу исполнения кода драйвера выводятся сообщения.

    Вопрос простой. Как эти сообщения увидеть, когда драйвер работать начнёт?

    До этого разбирался с WDF-драйвером. Там для вывода строк использовались функции TraceEvents(), а смотрел их с помощью утилиты traceview.exe
  • Здравствуйте. Меня спросили: смогу ли я написать простейший динамический драйвер для чтения физической памяти? Я, имея некий опыт писания на С/С++, естественно ответил да. Потребовалось некоторое кол-во времени, чтобы осознать, что и как надо делать.
    Я изучил теорию, почитал некоторую литературу по этой теме и решил перейти к практике. На практике все оказалось на много сложнее. А теперь по порядку:

    Во-первых относительно написания самого драйвера, без всяких свистелок переделок.
    За основу сначала я взял статью "Драйвер с нуля", потом книгу П. И. Рудаков, К. Г. Финогенов "Язык ассемблера: уроки программирования". Код был "адаптирован" под Вин7* и в обоих случаях драйвер в WDK 7.6 не копмилится, пишет 5 ворнингов и 2 еррора, что делать не знаю. Хелп?

    И собственно первый вопрос, обязательно прописывать строки, в частности последнюю, или хватит только первой или второй.
    Код:
    #define NT_DEVICE_NAME  L"\\Device\\DrvrPro" 
    #define WIN32_DEVICE_NAME L"\\??\\DrvrPro"
    #define DOS_DEVICE_NAME L"\DosDevices\DrvrPro"
    Ну и следовательно надо ли везде таскать структуры для кажого типа устройства:
    Код:
     UNICODE_STRING unitNtName;
    RtlInitUnicodeString(&unitNtName, NT_DEVICE_NAME);
    UNICODE_STRING unitWinName;
    RtlInitUnicodeString(&unitWinName, WIN32_DEVICE_NAME);
                // И делать следующее действие, связывая их
    IoCreateSimbolicLink(&unitWinName, &unitNtName);

    Так же меня очень удивляет то, что в разных источниках авторы пишут одинаковые по содержанию функции xxxOpen и xxxClose, но разные по назначению, почему так?

          * Хотел бы узнать, сильно ли отличается программирование драйверов на Вин7 от ХР, потому как я знаю, что в Висте и в 7 драйвера находятся не на нулевом уровне привилегий и помешает ли мне это сделать чтение памяти? Конечно же я могу ошибаться.

    Во-вторых конечно меня интересует чтение, хотя бы чтение физической памяти, причем любого участка, хотя опять же, прошу вас не зацикливаться на "любого участка"...
    В этом вопросе я хотел бы определиться, какие функции надо использовать для достижения поставнной цели, потому что везде пишут разное. У меня в данный момент написано следующее:

    Код:
    NTSTATUS CtlDispatch(IN PDEVICE_OBJECT pDeviceObject, IN PIRP Irp) 
    {
    PIO_STACK_LOCATION pIrpStack;
    PULONG pIOBuffer;
    UNICODE_STRING uniMemoryName;
    OBJECT_ATTRIBUTES ObjectAttributes;

    HANDLE SectionHandle; //Дескрипктор секции памяти
    PHYSICAL_ADDRESS PhysicalAddress;
    PHYSICAL_ADDRESS SectionBase;

    ULONG Length;

    PVOID VertialAddress = NULL;

    pIrpStack = IoGetCurrentIrpStackLocation(Irp);
    pIOBuffer = Irp->AssociatedIrp.SystemBuffer;

    switch (pIrpStack->Parameters.DeviceIoControl.IoControlCode)
    {
    case IOCTL_ADD:
    *pIOBuffer = (ULONG)CtlDispatch; //Адрес процедуры
    Irp->IoStatus.Information = 4; // Число переслылаемых байтов
    break;

    case IOCTL_MAP:
    PhysicalAddress.LowPart = *pIOBuffer++;
    PhysicalAddress.HighPart = 0;

    Length = *pIOBuffer--;

    RtlInitUnicodeString(&unitMemoryName, L"\\Devise\\PhysicalMemory");
    InitializeObjectAttributes(&ObjectAttributes, &uniMemoryName, OBJ_CASE_INSENSITIVE, NULL, NULL);

    ZwOpenSection(&SectionHandle, SECTION_ALL_ACCESS, &ObjectAttributes);
    SectionBase = PhysicalAddress;
    ZwMapViewOfSectoin(SectoinHandle, (HANDLE)-1, &VirtualAddress, 0L, Length, &SectionBase, &Length, ViewShare, 0, PAGE_READWRITE|PAGE_NOCACHE);

    (ULONG)VirtualAddress += PhysicalAddress.LowPrat - SectionBase.LowPart;
    *pIOBuffer = (ULONG)VirtualAddress;
    Irp->IoStatus.Information = 4;

    break;
    }
    Irp->IoStatus.Status = STATUS_SUCCESS;
    IoCompleteRequest(Irp, IO_NO_INCREMENT);
    return STATUS_SUCCESS;
    }

    Собственно когда драйвер получает команду IOCTL_MAP он должен вернуть адрес физического участка памяти и передать его в программу (USER MODE?). Это теоретически, а на практике это как(так)?
    Тут использованы команды ZwXXX, описание которых если "пояндексить/гуглить" не найти или найти там где я их взял, и то описанием это сложно называть. Может есть другие функции или подобное что могло бы мне помочь решить задачу? И вообще рад услышать совет в этой области. Опять же повторюсь, мне надо чтение физической памяти, по заданному отрезку.

    В третьих, билдер от WDK это не возможно, что можете посоветовать как замену?

    Короче помогите, чем можете. Заранее спасибо.

    П.С. Видите ли, я не могу скомпилировать драйвер и следовательно проверить его работоспособность, поэтому код драйвера выкладываю во вложении)

    Простите, есть странно/не понятно излагаю свой вопрос, но уже шарики за ролики или ролики за шарики заскакивают от этого драйвера.




  •        У меня есть вопросы по UNIОРС - может посоветуете как выкрутится...
    Вопрос состоит в том чтобы сделать драйвер для устройства RS232 (Контроллер WE2108) .
    Есть пример но в нем не ясно ОРС берет функции передачи в порт на себя или нужно все формировать :confused:.
     Коротко драйвера еще не делал.
     Все очень туго...
     И еще придется потом расширяться до 11 устройств (конвертеры в RS485) :shock:
     
     - Помогите пожалуйста  :yes:

  • Здравствуйте, уважаемые.
    Столкнулся я с проблемой, и никак не могу её победить (а сроки поджимают).
    Суть проблемы такова: необходимо мне производить некоторое простейшее действие с периодом от миллисекунды (или даже 0,5мсек) до десятков миллисекунд. Под Win.
    В User mode я почти этого добился, пользуясь Sleep(0) и PreformanceCounter'ом.
    Но на одноядерных машинах система временами (обновление экрана, например) напрочь сбивала мне все тайминги и отъедала просто непреличные куски времени.
    Умные люди посоветовали пересмотреть всю концепцию разработки, или, на крайний случай, перекинуть кусок программы в Kernel mode.
    А вопрос, собственно, такой: чем и как мне можно тактовать время с такой частотой?
    Период, если это важно, изменяется каждый такт, но можно, впринципе, менять и с меньшей частотой. Главное чтобы резких скачков между вызовами процедуры не было.
  • Привет всем.
    Проблема в следующем. Для драйверов x86 использую для отладки связку WinDbg+WMWare, меня это вполне устраивает. Пытаюсь аналогично делать для драйверов x64 - WinDbg отказывается коннектится к WMWare. Подозреваю, что хост-система тоже должна быть x64 с WinDbg for x64 (пытаюсь делать из хоста WinXP x86, отлаживаемая система в WMWare - Win7 x64). Если кто делал такое, пните меня в нужном направлении. Да и если все таки нужно, чтобы хост был также x64, можно ли сделать, чтобы хостом была тоже виртуальная система.
    З.Ы. Предварительно драйвер подписал как тестовый и соответственно настроил систему, то есть без отладки драйвер запускается.
  • Направления программирования :: Сети
  • Интересно, кто-нибудь у нас уже имеет опыт эксплуатации IPv6?
    Расскажите, что интересного было, какие трудности и вообще, любую инфу из практики.

    У меня пока все ограничивается экспериментами в рамках одиночного хоста и 6to4. Но чую, что сейчас самое время изучать.

  • Можно ли организовать RAID10 на Windows Server 2008 с помощью встроенной в ОС оснастки "Управление дисками" (Diskmgmt.exe)

    .
  • Направления программирования :: Web
  • ну вот гляди...
    http://forum.shelek.ru/index.php/topic,23821.0.html
    Кто-то что-то сказал? Ладно. Это только новостная лента.
    А не сказал, потому как не нужно.
    Я после этой статьи пытался найти что-то в реализации.
    И вот сегодня.... читаю про пинг гугля и яндекса.
    Оказывается....
    описан протокол Weblogs.Com XML-RPC interface
    Описаны API  и создан сервис у Яндекса
    Описан API Google http://www.google.com/help/blogsearch/pinging_API.html
    а вот и реализация

    Код:
    require('IXR_Library.inc.php');
    // Что посылаем в пингах
    // Название сайта
       $Namesite = 'Твой сайт';
    // Адрес сайта
       $URLsite = 'http://мой.сайт/';
    // Адрес страницы, которая изменилась (например)
       $URLpage = 'http://мой.сайт/новыйпост');

    /**
    * Яндекс.Блоги - почему блоги мне совсем не понятно
    */
       $pingYA = new IXR_Client('ping.blogs.yandex.ru', '/RPC2');

    // Посылаем challange-запрос
       if (!$pingYA->query('weblogUpdates.ping', $Namesite, $URLsite, $URLpage)) {
          echo 'Ошибка ping-запроса [' . $pingYA->getErrorCode().'] '.$pingYA->getErrorMessage();
       } else {
            echo 'Послан ping Яндексу';
       }

    /**
    * Google - опять почему-то блоги
    */
       $pingGoogle = new IXR_Client('blogsearch.google.com', '/ping/RPC2');

    // Посылаем challange-запрос
       if (!$pingGoogle->query('weblogUpdates.extendedPing', $Namesite, $URLsite, $URLpage)) {
          echo 'Ошибка ping-запроса [' . $pingGoogle->getErrorCode().'] '.$pingGoogle->getErrorMessage();
       } else {
           echo 'Послан ping Google';
       }

    И сам класс...
    http://scripts.incutio.com/xmlrpc/IXR_Library.inc.txt

    Да... и как я понял, что во многих блоговых движках это уже встроенная штука (кто-нибудь из блогеров об этом знает?). Приведенный пример для "велосипедистов".

    зы...Почему здесь? А где? :)

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

    зззы. Только б не забыть, что это я написал здесь :)

  • Возникла необходимость в runtime строить графики по всяким статистическим данным, которые хранятся в БД (MySQL, но не принципиально).
    Выводиться и строиться должно по запросу на веб-страничку.
    Кто может подсказать хорошие компоненты для построения таких графиков?
    Принимаются как серверные (желательно PHP), так и клиентские (js/flash) решения, желательно Freeware.
    В идеале компонент должен принимать на вход, например, массив с данными, параметры графика (оси, легенда, тип, вид, и тп)...
  • Направления программирования :: Web :: Серверные скрипты
  • Какой скрипт будет работать быстрее: первый, или же всё-таки второй? Оба выполняют одну и ту же функцию.

    Код:
    $image_types = array('.gif', '.jpg', '.jpe', '.png', '.bmp');
    preg_match_all('#' . get_preg_expression('url') . '#i', $this->message, $matches);
    foreach ($matches[0] as $match)
    {
    foreach ($image_types as $extension)
    {
    if (stripos($match, $extension) !== false)
    {
    $this->warn_msg[] = $user->lang['DISALLOWED_SITE'];
    return (!$update_this_message) ? $return_message : $this->warn_msg;
    }
    }
    }

    Код:
    preg_match_all('#' . get_preg_expression('url') . '#i', $this->message, $matches);
    foreach ($matches[0] as $match)
    {
    if (preg_match('#(\.gif|\.jpg|\.jpe|\.png|\.bmp)#i', $match))
    {
    $this->warn_msg[] = $user->lang['DISALLOWED_SITE'];
    return (!$update_this_message) ? $return_message : $this->warn_msg;
    }
    }
  • function _1(){
    return false;
    }
    echo _1();

    Ничего не выводит

    function _2(){
    return true;
    }
    echo _2();

    выводит 1

    тока-тока проверено в денвере.

    Где прочитать?
    Здесь http://php.net/manual/en/language.types.boolean.php не вижу.
  • Направления программирования :: Web :: Клиентские скрипты
  • Вот здесь: http://cro.agroup.tmweb.ru верхнее меню. Пока только на главной
    Заказчик хочет, чтобы по наведению мышки плавно выезжало, а по убиранию оной так же плавно заезжало.
    Ну естественно само собой напрашивается применение slideDown() из jQuery, всякие решения на css3 будут работать максимум в 5% браузеров, и явно же у заказчика _такой_ красоты что-то типа IE6.
    Что-то у меня пошло не так. Выезжать выезжает нормально, а вот уезжает как-то не по делу: иногда сразу после выезжания даже. И никогда не удаётся перевести мыша на свежевыехавшее подменю.
    Что делаю не так?
  • Вот такой индийский код:
    Код:
    <input name="userfile" />
    <input name="userfile" />
    Мне нужно получить то значение, которое попадает во второе поле.
    $("input[name=userfile]").val() возвращает только значение первого поля.


    Применение именно jQuery ну совсем необязательно.
    Назначить id в данном конкретном случае проблематично.
  • Практические разделы :: Базы данных
  • Возможно, такая тема здесь уже была, так что ссылки на обсуждения приветствуются.

    Давно использую MySQL по работе в различных небольших проектах.. В основном из-за простоты связки с PHP..
    Встала задача сбора и анализа логов с различных серверов.. Из-за некоторых требований было решено реализовать это так - с некоторой периодичностью выделенный сервер собирает порции новых записей из логов удаленный серверов, загоняет их в базу, а потом, по запросу все анализируется и выводится в виде графиков и тп...
    По привычке выбрал MySQL, но после нескольких дней засомневался в правильности...

    Сейчас база занимает около 5 Гб, в ней содержится около 19 млн записей (И это еще даже не десятая часть от желаемого объема!), каждый день прирастает примерно по 2 млн записей (потом будет еще раза в 2 больше)..

    Меня беспокоит вопрос - будет ли база стабильно и достаточно быстро работать на пике, когда объем вырастет раз в 10.. По моим ощущениям, скорость, как минимум, добавления записей, упала раза в 2 по сравнению с пустой базой..
    При этом нагрузка процессора (Dual-Core AMD Opteron 1220, 2.8 GHz) приближается к 100% при добавлении в 2 потоках через ODBC-коннектор.
    Памяти у серванта 4 Gb, из них более 1.5 Gb отдано для MySQL.. Сервер под Win2003 SE SP2.
    Кроме этой базы тут же крутятся базы еще нескольких нужных проектов, но их нагрузка минимальна, однако не хочется, чтоб упавший сервант погреб их под собой..

    Собственно вопрос такой - если ставить на этот же сервер другую базу - например MSSQL - будет ли это более выигрышным? В перспективе можно организовать сервер с Oracle 10 (на него лицензия какая-то есть у компании), но также нужно сравнить - будет ли выгода?

    Приоритеты в порядке убывания:
    * Цена решения
    * Надежность работы остальных компонентов на этом же сервере (чтоб не влияло на них и не отбирало 100% CPU)
    * Хранение больших объемов (скажем, до 80 Гб и 500 млн записей)
    * Скорость добавления новых записей

    Временем анализа можно пожертвовать - оно может немного подождать при построении графиков, но также в разумных пределах..
  • Всем здравствуйте!
    подскажите, пожалуйста, кто знает, как правильно написать запрос?
    нужно вывести поле наценка, как результат от деления (продажи-продажи в договорных ценах)/продажи в договорных ценах
    проблема в том, что договорной цены может и не быть
    как написать, чтобы в случае возникновения ошибки деления на ноль в поле выводился ноль?
    изначально , скажем запрос такой

    SELECT access.SUMPROD, access.SUMDOG, (SUMPROD-SUMDOG)/SUMDOG
    FROM access access

    теоретически понимаю, что здесь нужно использовать is null или case

    но как? мои познания в SQL скудны и поверхностны
  • Уважаемые Гуру и все кто сможет помочь...

    Не уверена что выбрала правильный раздел..

    Расскажу суть проблемы с самого начала.
    В организации 1С ТиС7.7. Много пользователей, работает вяло, минимальный объем данных выгружается достаточно долго.
    Но при этом большинство пользователей извлекает по большей части сходные данные, просто по-разному организованные.
    Возникла идея ограничить доступ пользователям к 1С, обеспечив их при этом необходимыми данными в виде готовых динамических отчетов в Excel(в форме сводных таблиц, чтобы каждый смотрел как ему удобно). Для этого выгружать некие срезы БД (за день, неделю, месяц),  делать из них выбор необходимой информации посредством SQL запроса в готовые отчеты, где потом посредством макросов рассчитывать необходимые аналитики.
    Данные выгружаются в DBF файлы.
    Ввиду моего скудного знания SQL(и написания запросов SQL на VBA) запросы делаю посредством MS Query.
    И собственно всё неплохо, если требуется простое соединение таблиц MS Query справляется нормально, все работает.
    Проблемы возникают, если нужно сделать полное внешнее соединение таблиц. MS Query умирает.
    Да собственно и если соединять более двух таблиц уже та же история.
    Что вообще лучше сделать?
    Если запрос SQL будет написан текстом непосредственно в макросе, то больше шансов что он выполнится, чем с использованием MS Query?
    Если не использовать выгрузку в DBF файлы, а подключаться к тем же данным в SQL формате на сервере, поможет ли это? ускорит процесс? есть шанс, что  MS Query сможет с этим справится?

    А может есть какие более изящные решения, подскажите пожалуйста!
  • БД: Access
    связь: TadoQuary
    отображение: TDBGrid
    Как написать запрос для удаление записи?
    Есть таблица: ID (инкримент)
    |ID| |Name|
    1 nam1
    3 nam2
    4 nam3
    мне нада удалить поточную запись в Grid. Как получить id поточной записи грида?
  • Практические разделы :: Железо
  • есть комп c убитыми винтами. есть мысль, воткнуть ему какой-нибудь WD на полтеррабайта и заюзать в качестве файл-сервера. слоты у компа IDE-шные.

    1. имеет ли смысл заморачиваться с контроллерами PCI-SATA?
    2. если заморачиваться, то с какими?
    3. можно ли будет сделать этот SATA загрузочным?
    4. как с подобными девайсами дружат винда и линух?
  • Принтер раньше стоял под Windows XP и нормально работал.
    Затем переустановили на Windows 7 со стандартным драйвером - теперь после отправки на печать думает около минуты затем печатает.
    Антивирус стоит касперский. Может дело в нем ?
  • Практические разделы :: Программы
  • Когда я хочу посмотреть ролик с rutub-a через Web-браузере Opera бывает такое, что большая часть экрана останавливается, а внизу остаётся часть изображения в виде горизонтальной полосы, где нормально идёт видео, при этом со звуком всё впорядке.
    Если использую Web-браузер Opera 10.10, то достаточно перегрузить страницу, но в Web-браузере Opera 10.60 это не помогает.

    В чём же проблема и как это поправить?
  • Клубное :: Общение
  • Это чудо запускается у меня в виртуальной машине минут 10—15.
    При том, что в той же виртуальной машине Windows XP запускается минуту-полторы, а Debian — около двух минут.
    Памяти ей выделено гигабайт. Больше затруднительно, на компе всего два гига.

    Это действительно нормальное время загрузки или можно как-то ускорить?
    А то утомляет каждый раз ждать.
  • Пару дней назад дочка приволокла домой щенка с улицы. Махонького такого, месяц от роду наверно.
    Мы тут в связи с этим до сих пор все под впечатлением. Ни у кого из нас никогда ранее не было собак => понятия не имеем, что с ними вообще делать надо.
    Вот это существо теперь бегает по квартире, грызёт всё, что попадётся в зубы, ест пожалуй больше, чем остальные четверо здесь проживающих, делает лужи и кучи где ни попадя, хотя и выводится регулярно на улицу. Но вот на улице почему-то не хочет.
    Люди на улице, кто его видит, в один голос утверждают, что щенок породистый, немецкая овчарка. Это страшно? И как точнее проверить? Вот ему месяц сейчас, а он уже террорист. Что же будет, когда вырастет?
    (http://forum.shelek.ru/index.php?action=dlattach;topic=25059.0;attach=4980)

А теперь прощаемся с Вами до следующего выпуска.


С уважением, команда Клуба.


В избранное