Re[2]: Ваши последние 20 строк кода
Здравствуйте, 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 строк кода
Н>Просто ради интереса — кто чего делает. 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 строк кода
Здравствуйте, Нахлобуч, Вы писали:
Н>Просто ради интереса — кто чего делает. 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 строк кода
Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, Mamut, Вы писали:
P>А чего такая короткая-то? Вот в том проекте, где я сейчас занят, есть функции до 1500 строк...
Не, пока удается разбивать код на логические кусочки-функции. Правда ща намечается функция-монстр на пару сотен строчек точно
А извинения я принес потому, что просили 20 строчек, а я выкинул около сотни
... << RSDN@Home 1.1.4 beta 4 rev. 0>> ... <<Winamp is playing "Evanescence — Going Under">> ...
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 строк кода
Здравствуйте, Нахлобуч, Вы писали:
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 строк кода
M>> Не, пока удается разбивать код на логические кусочки-функции. Правда ща намечается функция-монстр на пару сотен строчек точно
P>Блин, везет же людям!
Везет, что я один на всем проекте
Хоть и не очень маленьком. Так что контроль — полностью в моих руках. Еще его бы не растерять...
А в прошлом году с двумя друзьями работал — ууу. Они тоже, вроде, не курили, но код писали
... << RSDN@Home 1.1.4 beta 4 rev. 0>> ... <<Winamp is playing "Soundtrack — Vois Tur Ton Chemin">> ...
Re: Ваши последние 20 строк кода
Здравствуйте, Нахлобуч, Вы писали:
Н>Просто ради интереса — кто чего делает. 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 строк кода
Здравствуйте, Real 3L0, Вы писали:
R3>О! Это то, что мне надо было!
R3>
Дарю. За пиво могу огранизовать тех поддержку
Re: Ваши последние 20 строк кода
Здравствуйте, Нахлобуч, Вы писали:
Н>Просто ради интереса — кто чего делает. 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 строк кода
Здравствуйте, Нахлобуч, Вы писали:
Н>Просто ради интереса — кто чего делает. 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>>
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить