Re[2]: Ваши последние 20 строк кода
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 17.03.05 09:55
Оценка:
Здравствуйте, V.Petrovski, Вы писали:

VP>
VP>using System;

VP>namespace Ranet.Cooperation.DataTransformer
VP>{
VP>...
VP>


О! Это то, что мне надо было!
... << RSDN@Home 1.1.4 beta 4 rev. 302>>
Вселенная бесконечна как вширь, так и вглубь.
Re[3]: Ваши последние 20 строк кода
От: Privalov  
Дата: 17.03.05 10:00
Оценка: :)
Здравствуйте, ssm, Вы писали:


ssm>исключительно в целях отладки и волею индуса архитектора


И у меня такого хватает. И, кстати, код, написанный несколько лет тому назад в таком стиле, принуждает меня следовать такому стилю и сейчас. А переписывать старый не дают: работающий код — священная корова.
Re[2]: Ваши последние 20 строк кода
От: Privalov  
Дата: 17.03.05 10:02
Оценка:
Здравствуйте, Mamut, Вы писали:

А чего такая короткая-то? Вот в том проекте, где я сейчас занят, есть функции до 1500 строк...
Re: Ваши последние 20 строк кода
От: Nickolas Чехия  
Дата: 17.03.05 10:13
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

while( cur.Fetch() ) {
Int orderID = order.DocID;
Int invoiceID = invoice.DocID;

//make subcriptions for this order invalid
{
ASCursor cur2( rdb );
OItem oitem;
Subscription sub;
cur2.Project()
<< oitem->subscriptionID
<< sub->ServStatus;
cur2.Set( oitem->OrderDocDocID == orderID && sub->subscriptionID == oitem->subscriptionID );
while( cur2.Fetch() && sub.ServStatus == SSE_NOTEXIST ) {
oSubscription.changeStatus(oitem.subscriptionID, SS_INVALID, Msg("bla-bla-bla").what() );
}
}

ths->SetDocStatus(invoiceID, DS_INVALID, Msg("bla-bla-bla").what() );

ths->SetDocStatus(orderID, DS_INVALID, Msg("bla-bla-bla").what() );
}
... << RSDN@Home 1.1.4 beta 4 rev. 350>>
Re: Ваши последние 20 строк кода
От: SilentDeuce  
Дата: 17.03.05 10:13
Оценка:
Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют

    using namespace MSO;

    CUrl url;
    url.CrackUrl(sLocationUrl, ATL_URL_DECODE);

    if (!::_tcscmp(url.GetSchemeName(), _T("outlook")))
    {
        _ApplicationPtr spOutlook;

        // try attaching to Outlook
        // create new instance if Outlook isn't running
        if (FAILED(spOutlook.GetActiveObject(__uuidof(Application))))
            spOutlook = _ApplicationPtr(__uuidof(Application));

        if (bool(spOutlook))
        {
            // get folder root
            MAPIFolderPtr spFolder(spOutlook->GetNamespace(_T("MAPI"))
                ->Folders->Item(_variant_t(url.GetHostName())));

            if (bool(spFolder))
            {
                // traverse folder path 
                const _bstr_t sPathHolder(url.GetUrlPath());
                for (LPTSTR sPath = sPathHolder, pDelim = 0; sPath; sPath = pDelim ? pDelim + 1 : 0)
                {
                    pDelim = ::_tcschr(sPath, _T('/'));
                    if (pDelim)
                        *pDelim = _T('\0');

                    if (::_tcslen(sPath))
                        spFolder = spFolder->Folders->Item(_variant_t(sPath));
                }

                if (bool(spFolder))
                {
                    const _bstr_t sWebViewURL(spFolder->WebViewURL);
                    if (sWebViewURL.length())
                        sLocationUrl = sWebViewURL;
                }
            }
        }
    }
Re: Ваши последние 20 строк кода
От: Dirichlet Россия  
Дата: 17.03.05 10:15
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


void MayaSceneReader::ExportObject( const ExportItem * item, IObjectTreeItem * outputItem )
{
  Assert( item != NULL );
  Assert( outputItem != NULL );
  MStatus stat;
  Assert( item->NeedExport( ) );
  const ExportItem * curChild;
  while ( item->NextChildToExport( &curChild ) )
  {
    try
    {
      Assert( curChild->NeedExport( ) );
      CMayaObject obj = curChild->MayaObject( );
      std::string type = obj.getType( );
      IObjectTreeItemPtr newItem;
      if ( type == "mesh" )
      {
        newItem = ExportMesh( obj, outputItem );
      } 
      else if ( type == "transform" )
      {
        if ( !obj.isAttrExist( "LogicName" ) )
          newItem = ExportGroup( obj, outputItem );
        else 
          newItem = ExportUserItem( obj, outputItem );
      }
      else
      {        
        newItem = CreateItem( "Group", obj );
        CheckError( newItem != 0 );
        SetMessage( L"Can't determine type of scene element", ML_WARNING );
        outputItem->AddChild( outputItem->ChildCount( ), newItem );
      }
      Assert( newItem != NULL );
      DWORD curAttr = 0;
      while ( true )
      {
        MString curAttrName = MString("Attr") + curAttr;
        if ( !obj.isAttrExist( curAttrName.asChar( ) ) )
          break;
        std::string attrName = obj.getStringAttr( curAttrName.asChar( ) );
        if ( attrName == "Attachment" )
          ExportTransform( obj, newItem );
        else
        {
          IObjectTreeItemAttributePtr newAttr;
          newAttr = CreateAttr( attrName.c_str( ), obj );
          CheckError( newAttr != NULL );
          newItem->AddAttribute( newItem->AttributesCount( ), newAttr );  
          MString attrDataName = MString("Attr") + curAttr + "Data";
          std::vector< BYTE > attrData = obj.getBinaryAttr( attrDataName.asChar( ) );
          newAttr->AttributeData( )->SetData( &attrData[0], attrData.size( ) );
        }
        ++curAttr;
      }
      newItem->SetName( obj.getUnicodeName( ).c_str( ) );
      ExportObject( curChild, newItem );
    }
    catch( CException & )
    {
      SetMessage( L"Can't export element", ML_WARNING );
    }
  }
}
Re[3]: Ваши последние 20 строк кода
От: Mamut Швеция http://dmitriid.com
Дата: 17.03.05 10:19
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Здравствуйте, Mamut, Вы писали:


P>А чего такая короткая-то? Вот в том проекте, где я сейчас занят, есть функции до 1500 строк...




Не, пока удается разбивать код на логические кусочки-функции. Правда ща намечается функция-монстр на пару сотен строчек точно

А извинения я принес потому, что просили 20 строчек, а я выкинул около сотни
... << RSDN@Home 1.1.4 beta 4 rev. 0>> ... <<Winamp is playing "Evanescence — Going Under">> ...


dmitriid.comGitHubLinkedIn
Re: Ваши последние 20 строк кода
От: DuШes  
Дата: 17.03.05 10:32
Оценка:
Здравствуйте, Нахлобуч, Вы писали:
[...]

аааа...бейте...

.........................................................................
        *   Позиция, с которйо начинается название бизнес-процесса
            lnPositionCut = RAT("][", pcParentID)
            IF lnPositionCut = 0
                RETURN NULL
            ENDIF
            
            
        *   Название бизнес-процесса
            lcUnitID = SUBSTR(pcParentID, lnPositionCut + 1)
            lcUnitID = SUBSTR(lcUnitID, 2 , LEN(lcUnitID) - 2)
        
        *   идентификатор родителя
            lcParentOfParentID = SUBSTR(pcParentID, 1, lnPositionCut)


            loCollection = This.p_oRulesOfPerformance.SearchByUniqueID(ALLTRIM(lcParentOfParentID), This.p_oRulesOfPerformance.GetNextState(NULL))
            IF NOT ISNULL(loCollection)
                loCollection = loCollection.Add(CREATEOBJECT("Unit", lcUnitID))
                RETURN loCollection.Add(CREATEOBJECT("Unit", pcUnitID))
            ELSE
            *   пошла гулять рекурсия
                RETURN This.AnalizeAndAddParents(lcParentOfParentID, lcUnitID)
            ENDIF
        ENDPROC
.........................................................................
Re: Ваши последние 20 строк кода
От: rus blood Россия  
Дата: 17.03.05 10:33
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

20 — так 20...
 ..........................
    /* Now we should re-order keywords, created from names of products.
       These keywords and their derived forms (canonical and templated)
       have spider_order value -1. */
"   FOR pro_rec IN "
"     (SELECT DISTINCT prk_pro_id FROM dd_sem_product_keyword "
"      WHERE prk_spider_order < 0) "
"   LOOP "
"     v_current_order := 0; "
      /* We should re-order keywords of the current product */
"     FOR pro_kwd_rec IN "
"       (SELECT prk_kwd_id FROM dd_sem_product_keyword "
"        WHERE prk_pro_id = pro_rec.prk_pro_id "
"        ORDER BY prk_active_product DESC) "
"     LOOP "
"       v_current_order := v_current_order + 1; "
"       UPDATE dd_sem_product_keyword "
"       SET prk_spider_order = v_current_order "
"       WHERE prk_pro_id = pro_rec.prk_pro_id AND "
"             prk_kwd_id = pro_kwd_rec.prk_kwd_id; "
"     END LOOP; "
"   END LOOP; "
......................
Имею скафандр — готов путешествовать!
Re[4]: Ваши последние 20 строк кода
От: Privalov  
Дата: 17.03.05 10:35
Оценка:
Здравствуйте, Mamut, Вы писали:


M>


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



M> Не, пока удается разбивать код на логические кусочки-функции. Правда ща намечается функция-монстр на пару сотен строчек точно


Блин, везет же людям!
Re[5]: Ваши последние 20 строк кода
От: Mamut Швеция http://dmitriid.com
Дата: 17.03.05 10:52
Оценка: +1
M>> Не, пока удается разбивать код на логические кусочки-функции. Правда ща намечается функция-монстр на пару сотен строчек точно

P>Блин, везет же людям!


Везет, что я один на всем проекте Хоть и не очень маленьком. Так что контроль — полностью в моих руках. Еще его бы не растерять...

А в прошлом году с двумя друзьями работал — ууу. Они тоже, вроде, не курили, но код писали
... << RSDN@Home 1.1.4 beta 4 rev. 0>> ... <<Winamp is playing "Soundtrack — Vois Tur Ton Chemin">> ...


dmitriid.comGitHubLinkedIn
Re: Ваши последние 20 строк кода
От: Владислав Россия  
Дата: 17.03.05 10:53
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


    CVerifier <MAPIError> hMapiVer;
    CVerifier <LogicError> bVer (pAmbFolder && pPstParentFolder &&
        strFolderName.length () && pEntryIdAmbFolder.GetLength ());

    CComPtr<IMAPIFolder> pPstFolder;
    if (!pFolderInPst)
    {
        bool bIsOpen;
        pPstFolder = CreateFolder (pPstParentFolder, strFolderName, bIsOpen, bCreateFolderOnly);

        SizedSPropTagArray(5, tag) = {5, { PR_CONTAINER_HIERARCHY, 
            PR_CONTAINER_CONTENTS, PR_FOLDER_ASSOCIATED_CONTENTS, PR_DISPLAY_NAME_W,
            PR_DISPLAY_NAME_A}};
        hMapiVer.SetMAPIProvider (pAmbFolder);
        hMapiVer = pAmbFolder -> CopyTo (0, NULL, reinterpret_cast<LPSPropTagArray>(&tag), 
            0, NULL, &IID_IMAPIFolder, pPstFolder, 0, NULL);
    }
    else
    {
        pPstFolder = pFolderInPst;

        SizedSPropTagArray(4, tag) = {4, { PR_DISPLAY_NAME_W, 
            PR_DISPLAY_NAME_A, PR_COMMENT_W, PR_COMMENT_A }};
        hMapiVer.SetMAPIProvider (pAmbFolder);
        //hMapiVer = pAmbFolder -> CopyProps (reinterpret_cast<LPSPropTagArray>(&tag), 
        //    0, NULL, &IID_IMAPIFolder, pPstFolder, 0, NULL);
        HRESULT hRes = pAmbFolder -> CopyProps (reinterpret_cast<LPSPropTagArray>(&tag), 
            0, NULL, &IID_IMAPIFolder, pPstFolder, 0, NULL);
        if (hRes != MAPI_E_COLLISION)
            hMapiVer = hRes;
    }

    hMapiVer = pPstFolder -> SaveChanges (KEEP_OPEN_READWRITE);
Suum cuique (лат.)
Re[2]: Ваши последние 20 строк кода
От: John1979  
Дата: 17.03.05 11:29
Оценка:
Здравствуйте, avbochagov, Вы писали:

A> var writer = new KodeksFormatHTMLWriter(stream);

а разве Codec пищется не через "c" в двух местах ?
Re: Ваши последние 20 строк кода
От: Andy_MAN Россия  
Дата: 17.03.05 11:44
Оценка:
Вотъ:

            if (isGridSetupCompleted) return;
            foreach(DataColumn dc in table.Columns)
            {
                UltraGridColumn col = grid.DisplayLayout.Bands[0].Columns[dc.ColumnName];
                ColumnDescriptor cd = refUIItem.GetColDescr(dc.ColumnName);
                if (cd != null)
                {
                    if (cd.IsReadOnly)
                        col.Layout.Override.AllowUpdate = DefaultableBoolean.False;
                    col.Header.Caption = cd.Caption;
                    col.Hidden = !cd.IsVisible;
                    if (cd.Values != null)
                    {
                        col.ValueList = cd.Values;
                        col.Style = ColumnStyle.DropDownValidate;
                    }
                    else if (cd.EditorGUID != Guid.Empty)
                    {
                        col.Style = ColumnStyle.EditButton;
                    }
                }
            }
            isGridSetupCompleted = true;
Re[2]: Ваши последние 20 строк кода
От: DMVB  
Дата: 17.03.05 11:44
Оценка:
фокспро?
Re[3]: Ваши последние 20 строк кода
От: V.Petrovski Беларусь  
Дата: 17.03.05 11:55
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>О! Это то, что мне надо было!

R3>
Дарю. За пиво могу огранизовать тех поддержку
Re: Ваши последние 20 строк кода
От: Зверёк Харьковский  
Дата: 17.03.05 12:00
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


void tst_dbengine_read()
{
    BOOST_CHECKPOINT("open database");
    dbengine dbe( dbengine_test_path, dbengine::open_or_fail );

    BOOST_CHECKPOINT("tables creation");
    BOOST_CHECK(dbe.ensure_tables<test_class>());

    BOOST_CHECKPOINT("select by id");
    test_class t2;

    BOOST_CHECK(dbe.select<test_class>(tid, t2));

    BOOST_CHECK(t2.has("one"));
    BOOST_CHECK(t2.has("two"));
    BOOST_CHECK(t2.has("three"));
    BOOST_CHECK_EQUAL(t2["three"], "four");

    string_t test_array[] = {"one", "two", "four"};
    BOOST_CHECK_EQUAL_COLLECTIONS(t2.begin(), t2.end(), test_array);

    BOOST_CHECKPOINT("select by property");

    test_class t3;
    testid tid1;

    BOOST_REQUIRE(dbe.select<test_class>("one*", tid1, t3));
    BOOST_CHECK_EQUAL(tid1, tid);
    BOOST_CHECK(t3.has("one"));
    BOOST_CHECK(t3.has("two"));
    BOOST_CHECK(t3.has("three"));
    BOOST_CHECK_EQUAL(t3["three"], "four");

    BOOST_REQUIRE(dbe.select_next<test_class>(tid1, t3));
    BOOST_CHECK(tid1 != tid);
    BOOST_CHECK(t3.has("one-1"));
    BOOST_CHECK(t3.has("two-2"));
    BOOST_CHECK(t3.has("three-3"));
    BOOST_CHECK_EQUAL(t3["three-3"], "four-4");

    BOOST_CHECK(!dbe.select_next<test_class>(tid1, t3));
}
это мы, Зверьки!
FAQ — це мiй ай-кью!
Re: Ваши последние 20 строк кода
От: DMVB  
Дата: 17.03.05 12:01
Оценка:
class CSoapMultistringParam
{
public:
    CSoapMultistringParam(IAtlMemMgr *pMemMgr, int StrCount) 
    : m_pMemMgr(pMemMgr), m_StrCount(StrCount), m_Index(0)
    {
    ATLASSERT(StrCount > 0);
    m_pData = (BSTR *)pMemMgr->Allocate(m_StrCount * sizeof(BSTR));
    }
    ~CSoapMultistringParam()
    {
    AtlCleanupArray(m_pData, m_StrCount);
    m_pMemMgr->Free(m_pData);
    }
    HRESULT AddString(BSTR str)
    {
    if (m_Index == m_StrCount)
        return AtlHresultFromWin32(ERROR_INVALID_STATE);
    m_pData[m_Index] = ::SysAllocString(str);
    m_Index++;
    return S_OK;
    }
    int GetStringCount()
    {
    return m_StrCount;
    }
    operator BSTR* ()
    {
    return m_pData;
    }
private:
    IAtlMemMgr *m_pMemMgr;
    BSTR *m_pData;
    int m_StrCount;
    int m_Index;
};
Re[3]: Ваши последние 20 строк кода
От: DuШes  
Дата: 17.03.05 12:06
Оценка:
Здравствуйте, DMVB, Вы писали:

DMV>фокспро?


признаюсь ... грешен ...пока нет возможности перейти полностью на c#
Re: Ваши последние 20 строк кода
От: A_l_e_x_e_y Россия  
Дата: 17.03.05 12:10
Оценка:
Здравствуйте, Нахлобуч, Вы писали:

Н>Просто ради интереса — кто чего делает. 20 строк, надеюсь коммерческой тайны не составляют


ArrayList load_rubrics(string rubric_id, int type, OleDbConnection conn)
    {
        string query = string.Format("SELECT [Иерархия], [Классификатор].[Название], [Типы данных].[Название] AS [Тип данных], [Классификатор].[Код], [Вычисляемое] " +
                    "FROM [Классификатор] JOIN [Типы данных] ON [Типы данных].[Код] = [Классификатор].[Тип данных] WHERE [Иерархия] LIKE '{0}%' AND [Тип] = {1} ORDER BY [Иерархия]", rubric_id, type);
        OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn);
        DataTable table = new DataTable();
        adapter.Fill(table);
        HierarchyTree tree = new HierarchyTree();
        tree.load_tree(table);
        if(tree.tree_nodes.Count == 0 || tree.root_nodes.Count == 0)
            return null;
        TreeNode root_node = (TreeNode)tree.root_nodes[0];
        ArrayList nodes = new ArrayList();

        if(root_node.child_nodes.Count == 0)
            nodes.Add(root_node);
        else
            nodes.AddRange(root_node.child_nodes);
                        
        return nodes;
    }
... << RSDN@Home 1.1.4 beta 4 rev. 0>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.