Программерам
Apr. 5th, 2011 03:19 pmЗадачка: как оптимизировать такой код, чтобы убрать копи-пасты?
Напрашивается заведение двух функций... а, может, кто-нибудь знает другие трюки?
Upd: Порядок вызова seek/read важен - там в файле два последовательных блока, наличие/отсутствие которых определяется флагами OpAfter/OpBefore.
Напрашивается заведение двух функций... а, может, кто-нибудь знает другие трюки?
if (undoCase)
{
if (op & OpBefore)
{
uf.read(&hb, sizeof(hb));
*hNew= hb;
++hNew;
++i;
}
if (op & OpAfter)
{
uf.seek(sizeof(GHarmonicBase), SEEK_CUR);//pass redo data
++hOld;
}
}
else
{
if (op & OpBefore)
{
uf.seek(sizeof(GHarmonicBase), SEEK_CUR);//pass undo data
++hOld;
}
if (op & OpAfter)
{
uf.read(&hb, sizeof(hb));
*hNew= hb;
++hNew;
++i;
}
}
Upd: Порядок вызова seek/read важен - там в файле два последовательных блока, наличие/отсутствие которых определяется флагами OpAfter/OpBefore.
no subject
Date: 2011-04-05 01:18 pm (UTC)no subject
Date: 2011-04-05 01:24 pm (UTC)no subject
Date: 2011-04-05 02:15 pm (UTC)Любая нештатная ситуация легко обрабатывается катчем. А лучше книжки почитать.
no subject
Date: 2011-04-05 02:17 pm (UTC)no subject
Date: 2011-04-05 02:29 pm (UTC)no subject
Date: 2011-04-05 02:55 pm (UTC)catch команду Undo {
делать Undo
}
no subject
Date: 2011-04-05 03:01 pm (UTC)no subject
Date: 2011-04-05 03:03 pm (UTC)no subject
Date: 2011-04-05 03:09 pm (UTC)кроме вас, остальные комментаторы суть ухватили
продОлжите строить из себя умного, или, может, хватит? :)
no subject
Date: 2011-04-05 03:28 pm (UTC)