void XlateTableWriteBase::WriteXlate(XlateTable *xt){ unsigned i; for (i = 0; i < 10; i++)md[i] = xt->CopyMode('0'+i); lvl = 1; XlateTableRec *tb = md[0]; int ch; for (ch = 1; ch <256; ch++){ if (tb->dat[ch] != 0) { if (65535u != (i = ustridx(LowerCharList, ch))){ if (!EqXE(tb->dat[ch], tb->dat[UpperCharList[i]])) { DoItem(tb->dat[ch], lvl); if (tb->dat[ch]->n != 0) DoNext(tb->dat[ch]->n); } } else { DoItem(tb->dat[ch],lvl); if (65535u != (i = ustridx(UpperCharList, ch))){ if (EqXE(tb->dat[ch], tb->dat[LowerCharList[i]])) DoItem(tb->dat[LowerCharList[i]], 255); } if (tb->dat[ch]->n != 0) DoNext(tb->dat[ch]->n); }; // if (0 == (cpt ... else ... }; // if (tb-<dat[ch] != 0 ... }; // for (ch = 1 ... // WriteData(&c254, 1); UNCH tmp[2]; tmp[0] = 254; tmp[1] = 0; WriteData(tmp,2); };
void CMyPropertySheet::OnBnClickedNext() { //如果是“完成”则直接退出程序 CString csCaption; nextButton->GetWindowText(csCaption); if(0 == strcmp(FINISHCAPTION,csCaption)) { if(0 != DoNext()) { return; } OnClose();//直接关闭 return; } DoNext(); }
void XlateTableWriteBase::DoNext( XlateEntryData *p ){ lvl++; while (p != 0){ DoItem(p, lvl); if ((p->f != 0) && (EqXE(p, p->f))){DoItem(p, 256); p= p->f;} if (p->n != 0) DoNext(p->n); p = p->f; } lvl--; } ;
bool Iterator::NextShared(Environment &env, int id, Value &value) { if (_pShare.get() == nullptr) { for (;;) { if (!DoNext(env, value)) return false; if (!IsSkipInvalid() || value.IsValid()) break; } } else if (_pShare->Next(id, value)) { // nothing to do } else if (_pShare->IsDone()) { return false; } else { for (;;) { if (!DoNext(env, value)) { _pShare->SetDone(); return false; } if (!IsSkipInvalid() || value.IsValid()) break; } _pShare->Store(id, value); } return true; }