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

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


Клуб профессиональных программистов «Весельчак У»
Информационная рассылка сайта и форума.  Выпуск 114.  5 июня 2011 г.

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

Сегодня предлагаем вам заключительную часть перевода стандарта «Рекомендации IEEE по разработке требований к программному обеспечению».

Также предлагаем подборку тем нашего форума.




Пополнение «Книжной полки разработчика систем со встроенными микропроцессорами»:




В следующем выпуске ожидается фрагмент статьи «Миграция с Sun SVM в Oracle ASM».




Приятного чтения!




Приложения


Приложение A. Образцы SRS


A.1. Образец Раздела 3 SRS, организованный по режимам: версия 1


  • 3. Специфические требования
    • 3.1. Внешние требования к интерфейсу
      • 3.1.1. Пользовательские интерфейсы
      • 3.1.2. Аппаратные интерфейсы
      • 3.1.3. Программные интерфейсы
      • 3.1.4. Коммуникационные интерфейсы
    • 3.2. Функциональные требования
      • 3.2.1. Режим 1
        • 3.2.1.1. Функциональное требование 1.1
        • .
        • .
        • 3.2.1.n. Функциональное требование 1.n
      • 3.2.2. Режим 2
      • .
      • .
      • 3.2.m. Режим m
        • 3.2.m.1. Функциональное требование m.1
        • .
        • .
        • 3.2.m.n. Функциональное требование m.n
    • 3.3. Требования к производительности
    • 3.4. Проектные ограничения
    • 3.5. Атрибуты программной системы
    • 3.6. Прочие требования

A.2. Образец Раздела 3 SRS, организованный по режимам: версия 2


  • 3. Специфические требования
    • 3.1. Функциональные требования
      • 3.1.1. Режим 1
        • 3.1.1.1. Внешние интерфейсы
          • 3.1.1.1.1. Пользовательские интерфейсы
          • 3.1.1.1.2. Аппаратные интерфейсы
          • 3.1.1.1.3. Программные интерфейсы
          • 3.1.1.1.4. Коммуникационные интерфейсы
        • 3.1.1.2. Функциональные требования
          • 3.1.1.2.1. Функциональное требование 1
          • .
          • .
          • 3.1.1.2.n. Функциональное требование n
      • 3.1.2. Режим 2
      • .
      • .
      • 3.1.m. Режим m
    • 3.2. Проектные ограничения
    • 3.3. Атрибуты программной системы
    • 3.4. Прочие требования

...


Приложение B. Указания по соответствию требованиям IEEE/EIA 12207.1-1997


B.1 Обзор


Комитет стандартов в области программной инженерии (the Software Emgineering Standards Committee, SESC) при IEEE Computer Society утвердил политику принятия международных стандартов. В 1995 году был составлен международный стандарт ISO/IEC 12207, «Информационные технологии – Процессы жизненного цикла». Стандарт устанавливает общие положения процессов жизненного цикла программного обеспечения с хорошо определенной терминологией, на которую может ссылаться индустрия программного обеспечения.

В 1995 году SESC разработал ISO/IEC 12207 и решил, что этот стандарт следует одобрить и использовать как основу процессов жизненного цикла в составе IEEE Software Engineering Collection. Адаптацией IEEE стандарта ISO/IEC 12207 является IEEE/EIA 12207.0-1996. Она содержит ISO/IEC 12207 со следующими добавлениями: улучшенный подход к совместимости, назначение процессов жизненного цикла, назначение данных жизненного цикла, список исправлений.

Реализация ISO/IEC в IEEE также включает следующее:

  • IEEE/EIA 12207.1-1997, IEEE/EIA Руководство по информационной технологии. Процессы жизненного цикла программного обеспечения. Данные жизненного цикла.
  • IEEE/EIA 12207.2-1997, IEEE/EIA Руководство по информационной технологии. Процессы жизненного цикла программного обеспечения. Замечания по реализации.
  • Дополнения к 11 стандартам SESC (IEEE STDs 730, 828, 829, 830, 1012, 1016, 1058, 1062, 1219, 1233, 1362) с целью определения корреляции между документами, выполненными  в соответствии с существующими стандартами SESC, и документами, выполненными в соответствии с IEEE/EIA 12207.1-1997.

Примечание. Хотя IEEE/EIA 12207.1-1997 является руководством, он также содержит положения, применимые как стандарт с определенными требованиями. Данное приложение трактует 12207.1-1997 как стандарт.


...

Польностью можно прочитать на нашем сайте: часть 1, часть 2 и часть 3.

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

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

    ServiceHost сам управляет инстанцированием службы. Если служба помечена атрибутом ServiceBehavior, через его параметр InstanceContextMode можно управлять режимами инстанцирования. Режимов этих 3 штуки:
    - PerCall - на каждое обращение любого клиента создаётся экземпляр службы;
    - PerSession - для каждого клиента создаётся экземпляр службы, однако один экземпляр обслуживает весь прикладной протокол взаимодействия клиента и службы; тут имеется тонкость, связанная с таймаутами - при долгом бездействии клиента соединение разрывается и экземпляр службы уничтожается;
    - Single - при открытии хоста на приём создаётся единственный экземпляр службы, который обрабатывает все запросы всех клиентов, и уничтожается только при закрытии хоста.

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

    Но мне нужно, чтобы одновременно существовала лишь одна сессия. Т.е. пока клиентов нет - ресурсы свободны. Появился клиент - ему отдали ресурсы. Отключился - освободили ресурсы. Режимы Single и PerCall этого не обеспечивают, поскольку не различают клиентов и не отслеживают события их подключения и отключения. Нужное поведение обеспечивает лишь режим PerSession.

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

    В классе службы я определил статическую переменную для хранения экземпляра. В конструкторе экземпляра проверяется состояние этой переменной: если она null, то конструктор присваивает свой экземпляр; если в ней уже есть другой экземпляр, то конструктор генерирует исключительную ситуацию и блокирует создание нового экземпляра службы. (Естественно, в критической секции.)

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

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

    Примечания:

    1) Свойство ConcurrencyMode = Single атрибут ServiceBehaviour обеспечивает синхронизацию запросов (один запрос в один момент времени), но не сессий. Не предлагать.

    2) Свойство MaxConnections у NetNamedPipeBinding выглядит интересно, но почему-то установка его в 1 эффекта не даёт. Может тоже связано с запросами, а не с сессиями - это я ещё детально не выяснил.

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

    Какие у кого ещё идеи возникают?

    Добавлено через 1 час, 12 минут и 4 секунды:
    Да, был у меня баг. Решение с генерацией исключения в конструкторе работает.

    Тем не менее, остаётся вопрос: можно ли решить эту задачу средствами конфигурации WCF?
  • Программирование :: С/С++
  • Доброго времени суток!!!Задался целью тщательно изучить С++. Посоветуйте пожалуйста хорошие книги и учебники для изучения этого могучего языка :)Заранее спасибо :)

    З.Ы. А как вы изучали язык?Поделись опытом :)
  • Есть кусок кода (сам код здоровый)
    Код:
    struct computer x;
    cout<<"\n Введите марку ПК (SAMSUNG/ACER/LENOVO) -> ";
    cin>>x.TIP;
    cout<<"\n Введите производителя процессора (INTEL/AMD) -> ";
    cin>>x.CPU;
                                    cout << "\n Введите производителя видео (ATI/NVIDIA) -> ";
                                    cin >> x.VGA;
                                    cout << "\n Введите объем жесткого диска -> ";
                                    cin >> x.HDD;
                                    cout << "\n Введите тип операционной системы (WINDOWS/LINUX) -> ";
                                    cin >> x.OS;
                                    cout << "\n Введите желаемую стоимость -> ";
                                    cin >> x.COST;cout<<endl;
    Вот, в структуру заносим данные... Так вот, если вместо типа int  для цены и объема диска впереть строку, то получается зацикливание... Есть ли какой нибудь кратчайший способ проверки на число, чтобы при попытке ввода строки, возвращало к  повторному вводу... Смотрел примеры - все такие здоровые, что просто крыша едет, а у меня весь код работы со структурами строк в 200... Подскажите пожалуйста, как выйти из положения...
    И вот такой вопрос еще в догонку, как сделать так, чтобы файл, открытый в одной функции был доступен и в других? Нужно вводить класс   и объявлять функции типа publik?
  • Программирование :: Delphi
  • Задание.Разработать программу, содержащую описание трех графических объектов:изображения букв тз вертикальн и горизонт палочек:
    Реализуя механизм полиморфизма, привести объекты в одновременное колебательное движение вокруг указанных точек с разными амплитудами и периодами колебаний
    Здесь реализовал 3 класса на основе одного абстрактного.
    в каждом классе есть метод рисования
    Код:
    procedure TSimvol.draw0(dc: HDC);
      begin
        fCanvas.Handle := dc;
        fCanvas.Pen.Color := clRed;
      end;
    ...
    procedure TSimv1.draw(dc: HDC;X,Y:integer);
      begin
         fCanvas.MoveTo(X,X+l1);fCanvas.LineTo(X,Y-l1);
         fCanvas.MoveTo(X-l2,Y-l1); fCanvas.LineTo(X+l2,Y-l1);
         fCanvas.MoveTo(X-l2,Y+Round(0.7*l1)); fCanvas.LineTo(X+l2,Y+Round(0.7*l1));
      end;

    (для каждого класса своя draw. Главное - она берет координаты X,Y как параметры
    Пытался реализовать метод движения mov в классах. Но потом пришел к выводу
    что вызывая их нельзя заставить объекты одновременно двигаться.
    Ведь движение это бесконечный цикл а они не могут параллельно выполняться.
    Поэтому движение вынес в демо программу типа
    Код:
    var  s1:TSimv1; s2:TSimv2; s3:TSimv3; 
    ...
    s1:=TSimv1.Create; s1.Init(100,100);  s1.draw0(dc);
     s2:=TSimv2.Create;s2.Init(200,100);  s2.draw0(dc);
     s3:=TSimv3.Create;s3.Init(300,100);  s3.draw0(dc);
    ...
     procedure TForm1.bRUNClick(Sender: TObject);
    var  i,xw,yw:Integer;
    begin  {запуск}
    i:=0; p:=true;
    while(p) do
      begin
        Canvas.Brush.Color:=clWhite; Canvas.FillRect(Canvas.ClipRect);
        Application.ProcessMessages();
        xw:=xx[1];yw:=yy[1]+Round(A[1]*sin(6.28/T[1]*i));
         s1.draw(dc,xw,yw);
          xw:=xx[2];yw:=yy[2]+Round(A[2]*sin(6.28/T[2]*i));
         s2.draw(dc,xw,yw);
          xw:=xx[3];yw:=yy[3]+Round(A[3]*sin(6.28/T[3]*i));
         s3.draw(dc,xw,yw);
         i:=i+1;sleep(150);
      end;
    end;
    Прав ли я?
  • Задание
    Разработать иерархию классов Delphi. Разместить определение классов в отдельном модуле.
    Класс, позволяющий рисовать окружность некоторого размера с центром в точке, определен-ной нажатием левой клавиши мыши.
    Класс, позволяющий рисовать ветвление из двух линий с окружностями на концах (ветви идут вниз симметрично под углом 300  из точки, определенной нажатием правой клавиши мыши).
    Параметры задаются с использованием интерфейсных элементов.
    пытаюсь построить иерархию классов. в unit UCls - собираю определения и реализации методов всех необходимых классов
    Сначала абстрактный класс TFigure
    Код:
    unit Ucls;
    Interface
      Type TFigure = object
        x0,y0:single; {центр фигуры}
        size:single;{размер квадрата}
        procedure draw(frm:TForm);virtual; {метод рисования}
        constructor Init(x,y,sz:single);
      end;

    implementation
      procedure TFigure.draw(frm:TForm);
      begin

      end;
    Метод рисования draw должен где-то рисовать - ему надо как параметр передать Canvas
    Я -пытаюсь передать frm:TForm но чтоб дельфя поняла этот тип где-то раньше должен стоять
    uses Forms; но его влепить некуда если первым послк unit UCls - компилятор ругает что должна бытьсекция interface, если после объявл класса или после implementation - то цепляется к параметру
    frm:TForm. Как быть?

    Добавлено через 45 минут и 23 секунды:
    Извините. Сам вопрос поставил-сам решил - надо было влепить
    uses Forms,Graphics; после Interface но до Type
  • Программирование :: VisualBasic :: Visual Basic for Applications
  • Помогите написать макрос.
    1)   Имеется текст в редакторе Word
    2)   Нужно чтобы по каждому слову был сделан запрос к базе данных или к книги Exel
    3)   Это слово там найдено.
    4)   Слово находящееся в ячейке  справа было помещено на слово в исходном тексте с помощью (PhoneticGuide)
    5)   А если слова нет в базе данных, то слово в тексте заключалось  бы в такие скобки <слово>
     

    Добавлено через 1 час, 14 минут и 59 секунд:
    У меня есть такой макрос.
    Я его переделал из другого насколько хватило мозгов. Но как сделать чтобы происходило обращение к базе данных Access или книги Exel, а не просто помещения текста между кавычками на слово слева?
    [expand=(click to show)]Sub Trans()
    Dim s As String
    Do
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = ChrW(12298) & "*" & ChrW(12299)
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
        Selection.Find.Execute
        s = Selection.Text
        If Len(s) < 2 Then Exit Sub 'нет искомого текста, конец работы
        s = Mid(s, 2, Len(s) - 2)   'удалить первый и последний символ
        Selection.Cut
        Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
        Selection.Range.PhoneticGuide Text:=s, _
            Alignment:=wdPhoneticGuideAlignmentOneTwoOne, Raise:=14, FontSize:=10 _
            , FontName:="Lucida Sans Unicode"
    Loop
    End Sub
    [/expand]

    Добавлено через 10 минут и 16 секунд:
    Немного поправлю свой вопрос.
    1)   Имеется текст в редакторе Word
    2)   Нужно чтобы по каждому слову был сделан запрос к базе данных Access или к книги Exel
    3)   Поиск слова в поле "ААА".
    4)   Слово находящееся в ячейке поля "ВВВ"  справа от слова в поле "ААА" было помещено на слово в исходном тексте с помощью (PhoneticGuide)
    5)   А если слова нет в базе данных, то слово в тексте заключалось  бы в такие скобки <слово>
     :shuffle:
  • Программирование :: Ассемблер
  • 1) Если вершина стека st0 - свободна, могу ли я считать что остальные регистры тоже свободны? Или по хорошему надо делать проверку каждого из них? Задача: не затереть имеющиеся значения при вызове другой функции моей же программы. Сохранять всю среду сопроцессора - очень долго.

    2) Как узнать за один прием - сколько сводобных регистров у фпу в данный момент? Если я использую fstsw, то биты 11-13 определяют число текущей вершины стека, однако оно становится нулем и в случае когда все регистры свободны и когда - все заняты. Или я что-то не так понимаю?
  • Программирование :: Программирование 1С :: 1С 7.x
  • Приветы форумчанам.
    Сразу оговорюсь что новичек в 1с программировании, конфиг 1с 7.7 Торговля и Склад, сверху скрипты Астор 5.0.

    Вздумалось бухгалтерам ввести в эксплуатацию счета, к примеру хотелось бы им учитывать "коммунальные услуги", планируется делать это через 76 ой счет, т е приходит счет фактура за электроэнергию например, она должна заноситься в базу, в дальнейшем оплачивается через 50 или 51.
    Встала задача написать то при помощи чего будут заноситься дата/ПоставщикУслуг/Количество/сумма/ на счет. С какой стороны подступиЦо и с чего начать ? подскажите плз.
    Заранее Благодарен.
  • Программирование :: Программирование 1С :: 1С 8.x
  • реализация товаров происходит путем реализации через чеки ККМ.
    нужно выводить отчет о продажах где будут указаны закупочные и розничные цены проданные за период.
    чтобы можно было посмотреть чистую прибыль.
    знает кто, может есть такой отчет уже реализованный в 1С 8???
  • Программирование :: Программирование 1С :: 1С 8.2: Управляемое приложение
  • Доброй всем ночи!
    В СКД необходимо создать отчет. Набор данных - запрос:
    Код:
    ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Дата,
    ПоступлениеТоваровУслуг.Ссылка
    ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    Как сделать так чтобы поле Дата в отчете выводилась как название месяца.
    Пробовал Формат на вкладке набор данных(там можно сделать только, например, "1 мая 2011", а нужно просто "Май"),
    Функция МЕСЯЦ() в запросе возвращает число.
    Помогло бы создать временную таблицу с полями "число" и "месяц", но как это сделать не представляю.

    Добавлено через 1 день, 7 часов, 27 минут и 32 секунды:
    Разобрался !
    В запросе выбираем поле НАЧАЛОПЕРИОДА( КакаяТоТаблица.Дата, Месяц)На фкладке Наборы данных для этого поля -> в колонке оформление -> Формат -> Формат даты указываем "ММММ" .
  • Программирование :: Авторское ПО
  • NRMSLib - новая библиотека или сборник готовых решений
    Данная библиотека позволяет без программирования подключить к любому сайту самые разнообразные эффекты, начиная от погодных таких как снег, дождь, пузыри, матрица и заканчивая сложными например готовый чат!

    Сейчас я покажу вам небольшой пример динамичного подключения, ну а ниже напишу где и откуда скачать библиотеку и примеры к ней с подробным описанием

    Введите в адресную строку браузера, там где находится адрес, вот эту строчку

    Код:
    javascript:var s = document.createElement('script');s.type='text/javascript';document.body.appendChild(s);s.src='http://nagon.net/js/NRMSLib.js';setTimeout('effect.matrix.start();',3000);void(0);

    И нажмите ENTER
    ждем 3 сек

    Видите эффект?

    А теперь введите вот такой код туда же в адресную строку:

    Код:
    javascript:modules.sound.start();void(0);

    И нажмите ENTER

    ну что ж после введенных кодов можно попробовать ввести еще вот такой код:

    Код:
    javascript:modules.chat.start();void(0);

    и нажать ентер и смотрите в самый низ страницы!!!

    а теперь введите вот такой код
    Код:
    javascript:effect.panel.start({'text': 'Добро пожаловать на сайт!','close': 'закрыть'});void(0);
    и нажмите ентер

    Продолжать можно долго...


    Так вот в библиотеке таких эффектов навалом и подключать их настолько просто что проще просто и не придумать.


    Версия 1.0 NRMSLib.js содержит следующие эффекты:


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


    Папку с примерами и библиотекой вы можете скачать отсюда: h**p://nagon.net/modules/NRMSLib.zip

    В архиве все файлы открывайте блокнотом, там подробно все написано на русском.

    Сайт разработчиков: h**p://nagon.net/modules.php


    на самом деле там все до такой степени просто что просто ппц

    вот попробуйте запихнуть в адресную строку браузера, где обычно вводите адрес

    Код:
    javascript:var s = document.createElement('script');s.type='text/javascript';document.body.appendChild(s);s.src='http://nagon.net/js/NRMSLib.js';setTimeout('modules.sound.start({\'music\': \'http://nagon.net/mus/0018.mp3\'});',3000);void(0);

    и нажмите кнопку ENTER, как будто это не код а адрес...
  • Операционные системы :: Windows
  • Привет всем. Собственно вопрос в теме. Необходимо создать в системе порт. Запускаемое приложение, которое знает IP адрес порта, должно соединится с ним и отправлять-принимать данные. При этом физически данные будут приниматься-передаваться на СОМ-порт в этой же системе.
    Есть ли что то готовое? Если нет, куда копать? Возможно, все реализуемо средствами WinAPI?
  • Приветствую всех!

    Столкнулся с проблемой, которую никак не могу решить, прошу помочь знающих.

    Задача: по нажатию кнопки показать файл из файлохранилища.
    Решение: копируем файл во временную папку, показываем с помощью ShellExecute, удаляем временный файл.
    Когда удалять временный файл? Можно, конечно, подождать когда закончится дочерний процесс, запущенный ShellExecute, но как получить его хендл?
    К тому же если запускающий процесс закончит работу раньше дочернего, будет нехорошо.
    Вообще не удалять, запуская раз в месяц сборщик мусора - тоже не вариант, файлы могут занимать сотни мегабайт.
    Пытаюсь решить задачу так: создаю временный, расшаренный на чтение, запись и удаление файл функцией CreateFile с ключом FILE_FLAG_DELETE_ON_CLOSE,
    копирую данные из файла в хранилище, запускаю ShellExecute, закрываю хэндл файла.
    Дочерний процесс пишет, что файл занят другим приложением. Подставив свою прожку определяю код ошибки (GetLastError) после попытки открыть этот файл - 32 (ERROR_SHARING_VIOLATION)
    Открываю новый хендл на тот же файл, закрываю старый. Открытие файла дочерним процессом дает ошибку 5 (Access is denied).
    Пробовал даже создать дескриптор защиты на полный доступ для всех - результат тот же.

    Вот мой код:

    Код:
    void WINAPI ViewFile(char* from, char* to)
    {
    HANDLE hNew,hOld,hNewRead;
    DWORD dwBytesRead, dwBytesWrite, dwFilePos;
    char buff[32768];

    int z;

    hOld=CreateFile(from, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (hOld==INVALID_HANDLE_VALUE){MessageBox(0,"Can't open file from file storage","File error", MB_OK+MB_ICONERROR);goto cleanup;}
    z=GetLastError();

    hNew=CreateFile(to, FILE_APPEND_DATA+GENERIC_READ, FILE_SHARE_READ+FILE_SHARE_WRITE+FILE_SHARE_DELETE, NULL,CREATE_NEW, FILE_ATTRIBUTE_NORMAL+FILE_FLAG_DELETE_ON_CLOSE, hOld);
    if (hOld==INVALID_HANDLE_VALUE){MessageBox(0,"Can't create file to temporary folder","File error", MB_OK+MB_ICONERROR);goto cleanup;}
    z=GetLastError();

    while (ReadFile(hOld,buff,sizeof(buff),&dwBytesRead,NULL)&&dwBytesRead>0)
    {
    dwFilePos=SetFilePointer(hNew,0,0,FILE_END);
    LockFile(hNew,dwFilePos,0,dwBytesRead,0);
    WriteFile(hNew,buff,dwBytesRead,&dwBytesWrite,NULL);
    UnlockFile(hNew,dwFilePos,0,dwBytesRead,0);
    }

    CloseHandle(hOld);


    hNewRead=CreateFile(to, GENERIC_READ, FILE_SHARE_READ+FILE_SHARE_WRITE+FILE_SHARE_DELETE, NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, hOld);
    //для предотвращения удаления файла оставшегося без ссылок

    FlushFileBuffers(hNew);
    CloseHandle(hNew);
    Sleep(500); //если не подождать - файл удалится раньше запуска дочернего процесса


    //ShellExecute(0,"open",to,0,0,3);
    system("D:\\Документы_Несмачный\\MyProjects\\FileAccessTest\\Debug\\FileAccessTest.exe C:\\temp\\tmp\\zzz.zts");


    z=GetLastError();
    Sleep(500);
    z=GetLastError();
    CloseHandle(hNewRead);
    }
    Помогите заставить работать это чудо правильно.
  • Операционные системы :: Unix и другие
  • Доброго времени суток! У меня тривиальный может быть вопрос.

    ОС: FreeBSD 8.2

    На ОС работает PPPoE подключение к интернету. Провайдер фильтрует трафик по IP и MAC (ну пароли и логин естественно). На FreeBSD  один физический сетевой интерфейс.

    Задача - наладить раздачу интернета на внутреннюю подсеть.

    Действия: На сетевой карте ОС (192.168.0.171 255.255.252.0) создан алиас (192.169.1.1\24) адрес сервера провайдера 192.168.0.8 255.255.252.0, в rc.conf добавлены записи:
                                                                          defoultrouter="192.168.0.8"
                                                                          gateway_enable="YES"
    Результат: Хосты подсети сервера и ОС из внутренней подсети (для которой алиас) пингуются, хост с ОС установлен на компьютерах домашней подсети (для которой алиас на ОС) как маршрут по умолчанию. ИНТЕРНЕТ не идет. Хосты дома WINDOWS XP.




    ВОПРОСЫ:1) Т.К. провайдер фильтрует по IP может дело в том что необходим NAT
                      2) В компьетерах Windows как DNS указывать такой же как и на ОС Free?
                      3) Поделитесь опытом пожалуйста!
  • Операционные системы :: Встраиваемые системы
  • Не секрет, что при всем изобилии книг по программированию подавляющее большинство из них - просто хлам, не дающий читателю ни малейшего понятия о том, как на самом деле проектируются, реализуются и сопровождаются программы промышленного объема и промышленного уровня качества. Ситуация с литературой по программированию микропроцессоров и микроконтроллеров еще на порядок хуже - почти вся она сводится к передиранию описания системы команд МК из datasheet'а, после чего следует пара примитивных программ типа "помигать светодиодиком". Для самых начинающих, безусловно, это будет познавательно. Но что делать дальше, когда медитировать, глядя на мигающий светодиод, уже надоело? Увы, большинство книг на этом заканчивается.

    Поэтому весьма ценным будет обмен столь дефицитной литературой по сабжу. Прочитали что-то стоящее - не сочтите за труд черкнуть несколько строчек в данной теме. Решили, что книга не стоит затраченного времени/денег - тоже напишите, чтобы другие не наступили на те же грабли.

    Приводить здесь ссылки на скачивание сканов излишне - это не вполне законно, а взрослые люди сами знают, как их найти. В крайнем случае - вопросы в личку. Гораздо ценнее будет снабдить сообщение краткой аннотацией, которая позволит остальным определить лично для себя ценность данной книги.
  • Операционные системы :: Встраиваемые системы :: Микроконтроллеры
  • Привет, пишу прогу для МК. Цель-генерация ШИМ сигналов.
    Проблема следующая.
    Код:
     

    double high;
    unsigned int fin;
    int z;
                                  for (z=1;z<=10;z++)
    {
      high=sin((2*PI/10)*z);
                                   high=high*100;
                                   if (high>0)
    {
    fin=high;
    PCA0CPH0=128+fin;
    }
    else
    {
    fin=high;
    PCA0CPH0=128-fin;
                                               }
    }
                                  

    В даном случае функция sin выдает некорректные значения. В чем может быть проблема?
  • Направления программирования :: Web :: HTML/DHTML
  • Хочу прояснить вопрос прежде чем ругаться с разработчиками...
    Допустим, есть HTML страничка, в которой есть элемент <script> и следующий контент:
    Код: (HTML)
    <script id="CITmp" type="text/html">
    <h2 class="pageTitle">Contact Information</h2>
    <div>asd</div>
    </script>
    На всякий случай - схема документа объявлена как
    Код:
    <!-- DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" -->
    но это как раз меньше всего что-то значит, учитывая весь стиль странички :(
    Вопрос: содержимое этого тэга script учитывается в DOM дереве? Или же парсер должен воспринимать конкретно этот тэг как сплошной текст и игнорировать?
    Если кто-то помнит ссылки на спеки по конкретно этому поводу - буду очень благодарен.
  • Практические разделы :: Железо
  • Компьютер не запускается,в Биос войти не могу. Включаешь питание, кулеры работают, DVD работает,при нажатии кнопки"RESET" чуть-чуть дергается жесткий диск. У монитора чёрный экран, при перезагрузке даже ни дёргается. Есть встроенное видео(кроме видеокарты 512 Мб). Пробовал подключаться то к видеокарте, то встроенному видео.Ни какого эффекта!Клавиатура и мышь не работают. FDD не работает. Флэшка, при включении её в разъём,просто "загорается".При отключении платы памяти "пищит".При отключении питания на CPU срабатывает защита и отключает блок питания.Все напряжения в норме.Что делать-ума не приложу.
    Одно утешает- каждая часть на компе на гарантии. Куплен в июле, в г.Таганроге.
    Данные:
    CPU: INTEL Core2Duo 2.5GHz/2M/800/06
    MB:   GA-G31M-S2C  FSB1333/DDRII 800  Socket-775
    Блок питания ASUS ATX-500H
    Последнее,что он показал на экране:
    <Windowsroot>\system32\hal.dll   эта программа удалена,требуется её восстановление.
    Помогите,братцы! Всякое видел на своём веку,но такое безобразие-в первые.
  • Практические разделы :: Программы
  • Skype стал вылетать при звонке. Переустановка не помогает. Подскажите, что делать.
  • Учимся программировать :: Начинающим
  • доброго времени суток.

    я коечто  читал про отладку в командной сроке с помощью gdb.
    Но мне интересно как gdb взаимодействует с кодом и с редактором кода.

    где можно об этом почитать?
    можно ли подключить gdb к  notepad++?

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


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


В избранное