void reset_files() { WUser user; WStatus* pStatus = GetApplication()->GetStatusManager()->BeginTransaction(); pStatus->SetNumUsers(0); GetSession()->bout.NewLine(); int nNumUsers = GetApplication()->GetUserManager()->GetNumberOfUserRecords(); WFile userFile(syscfg.datadir, USER_LST); if (userFile.Open(WFile::modeBinary | WFile::modeReadWrite)) { for (int i = 1; i <= nNumUsers; i++) { long pos = static_cast<long>(syscfg.userreclen) * static_cast<long>(i); userFile.Seek(pos, WFile::seekBegin); userFile.Read(&user.data, syscfg.userreclen); if (!user.IsUserDeleted()) { user.FixUp(); if (isr1(i, nNumUsers, user.GetName())) { pStatus->IncrementNumUsers(); } } else { memset(&user.data, 0, syscfg.userreclen); user.SetInactFlag(0); user.SetInactFlag(inact_deleted); } userFile.Seek(pos, WFile::seekBegin); userFile.Write(&user.data, syscfg.userreclen); if ((i % 10) == 0) { userFile.Close(); GetSession()->bout << i << "\r "; userFile.Open(WFile::modeBinary | WFile::modeReadWrite); } } userFile.Close(); } GetSession()->bout << "\r\n\r\n"; WFile namesFile(syscfg.datadir, NAMES_LST); if (!namesFile.Open(WFile::modeReadWrite | WFile::modeBinary | WFile::modeTruncate)) { std::cout << namesFile.GetFullPathName() << " NOT FOUND" << std::endl; GetApplication()->AbortBBS(true); } namesFile.Write(smallist, sizeof(smalrec) * pStatus->GetNumUsers()); namesFile.Close(); GetApplication()->GetStatusManager()->CommitTransaction(pStatus); }