static void Main() { // CArray nums = new CArray(10); // Random rnd = new Random(100); // for(int i = 0; i < 10; i++) // nums.Insert((int)(rnd.NextDouble() * 100)); // nums.DisplayElements(); // Console.WriteLine("Before sorting: \n"); // nums.DisplayElements(); // Console.WriteLine("During sorting: \n"); // //nums.BubbleSort(); // //nums.SelectionSort(); // nums.InsertionSort(); // Console.WriteLine("After sorting: \n"); // nums.DisplayElements(); Timing sortTime = new Timing(); Random rnd = new Random(100); int numItems = 10000; CArray theArray = new CArray(numItems); for (int i = 0; i < numItems; i++) { theArray.Insert((int)(rnd.NextDouble() * 100)); } sortTime.startTime(); theArray.SelectionSort(); sortTime.stopTime(); Console.WriteLine("Time for Selection sort: " + sortTime.Result().TotalMilliseconds); theArray.Clear(); for (int i = 0; i < numItems; i++) { theArray.Insert((int)(rnd.NextDouble() * 100)); } sortTime.startTime(); theArray.BubbleSort(); sortTime.stopTime(); Console.WriteLine("Time for Bubble sort: " + sortTime.Result(). TotalMilliseconds); theArray.Clear(); for (int i = 0; i < numItems; i++) { theArray.Insert((int)(rnd.NextDouble() * 100)); } sortTime.startTime(); theArray.InsertionSort(); sortTime.stopTime(); Console.WriteLine("Time for Insertion sort: " + sortTime.Result(). TotalMilliseconds); }
public void RemoveAtRange(int aIndex, int aCount) { m_Count -= aCount; if (aIndex < m_Count) { Array.Copy(m_Array, aIndex + aCount, m_Array, aIndex, m_Count - aIndex); } CArray.Clear(m_Array, m_Count, aCount); }
/// <summary> /// Make a continuous data block ,begin with 0 index,better for iterator /// </summary> public void Compress() { if (m_Count == m_EndIndex) { return; } int i = 0; int a = 0; var aItems = m_Entities; while (i < m_EndIndex) { if (aItems[i].m_Hashcode < 0) { ++i; continue; } if (a != i) { aItems[a] = aItems[i]; } ++a; ++i; } //clear i = a; while (i < m_EndIndex) { aItems[i].m_Key = default; m_Values[i] = default; ++i; } //rebuild m_EndIndex = m_Count = a; i = 0; int aLen = m_Buckets.Length; CArray.Clear(m_Buckets, 0, aLen); while (i < m_EndIndex) { a = aItems[i].m_Hashcode % aLen; aItems[i].m_Next = m_Buckets[a] - 1; m_Buckets[a] = ++i; } }
/// <summary> /// Compress and sort the data. /// </summary> public void SortByValue(IComparer <Value> aComparer) { int i = 0; int a = 0; var aItems = m_Entities; while (i < m_EndIndex) { if (aItems[i].m_Hashcode < 0) { ++i; continue; } if (a != i) { aItems[a] = aItems[i]; } ++a; ++i; } //clear i = a; while (i < m_EndIndex) { aItems[i].m_Key = default; m_Values[i] = default; ++i; } QuickSortValue(0, a, aComparer); //rebuild m_EndIndex = m_Count = a; i = 0; int aLen = m_Buckets.Length; CArray.Clear(m_Buckets, 0, aLen); while (i < m_EndIndex) { a = aItems[i].m_Hashcode % aLen; aItems[i].m_Next = m_Buckets[a] - 1; m_Buckets[a] = ++i; } }
private void Execute() { try { SetAmbientContext(); var toExecutes = new CArray <CAction>(); while (_running) { lock (_sync) _readyToSchedules.MoveAllTo(toExecutes); if (toExecutes.Count == 0) { lock (_sync) { _synchronizationQueue.MoveAllTo(_readyToSchedules); _objectStore.Persist(_detectCircularDependencies); } } else { foreach (var toExecute in toExecutes) { try { toExecute.Action(); } catch { //todo let the world around know about the fact that a work item threw an exception } } toExecutes.Clear(); } } } catch (Exception e) { lock (_sync) _excepted = e; } }
public void Clear() { if (m_Count != 0) { int aCount = m_Array.Length - m_Head; if (m_Count > aCount) { CArray.Clear(m_Array, m_Head, aCount); CArray.Clear(m_Array, 0, m_Count - aCount); } else { CArray.Clear(m_Array, m_Head, m_Count); } } m_Head = 0; m_Count = 0; }
} //FOLD00 // Процедура построения выписки//FOLD00 public bool Build() { bool Result = false; long OldRootId = 0; OldBranchId = -1; OldUserId = -1; FileName1 = ""; FileName2 = ""; NeedNewFileCreate = true; Accounts = new CRecordSet(Conn1); if (Accounts.Open(GetCmdText(1))) { if (Accounts.Read()) { CArray AccountList = new CArray(); do { MapAccountFields(); AccountList.Add( __.Left(Accounts_Code, 32) + __.Left(Accounts_Tag, 8) + __.Left(Accounts_Id.ToString().Trim(), 20) + __.Left(Accounts_ExtId.ToString().Trim(), 20) + __.Left(Accounts_RootId.ToString().Trim(), 20) + __.Left(Accounts_UserId.ToString().Trim(), 20) + __.Left(Accounts_BranchId.ToString().Trim(), 20) + Accounts_Path ); } while (Accounts.Read()); Accounts.Close(); BankInfo = new CRecordSet(Conn1); if (BankInfo.Open(" select Code,Name,MainCrncyTag from dbo.vMega_Common_MyBankInfo ")) { if (BankInfo.Read()) { BankCode = BankInfo["Code"].Trim(); BankName = __.FixUkrI(BankInfo["Name"]); MainCrncyTag = BankInfo["MainCrncyTag"].Trim(); } } BankInfo.Close(); BankInfo = null; Amounts = new CRecordSet(Conn1); Transfers = new CRecordSet(Conn2); foreach (string Account in AccountList) { Accounts_Code = Account.Substring(0, 32).Trim(); Accounts_Tag = Account.Substring(32, 8).Trim(); Accounts_Id = __.CLng(Account.Substring(40, 20).Trim()); Accounts_ExtId = __.CLng(Account.Substring(60, 20).Trim()); Accounts_RootId = __.CLng(Account.Substring(80, 20).Trim()); Accounts_UserId = __.CLng(Account.Substring(100, 20).Trim()); Accounts_BranchId = __.CLng(Account.Substring(120, 20).Trim()); Accounts_Path = Account.Substring(140); OpenOutputStreams(); if (Accounts_RootId == 0) { PrintAccount(); } if ((Accounts_RootId != 0) && (Accounts_RootId != OldRootId) ) { OldRootId = Accounts_RootId; PrintAccount(); } } ; AccountList.Clear(); AccountList = null; CloseOutputStreams(); Transfers.Close(); Amounts.Close(); Result = true; } else { Accounts.Close(); } } else { Accounts.Close(); } Transfers = null; Accounts = null; Amounts = null; return(Result); } //FOLD00
public void Clear() { CArray.Clear(m_Array, 0, m_Count); m_Count = 0; }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Вычитка списка пунктов открытия/закрытия дня static bool LoadHistory(int Mode) { int MenuItemWidth = (Mode == 1) ? 32 : 25; Connection = new CConnection(ConnectionString); RecordSet = new CRecordSet(Connection); bool Result = false; if (RecordSet.Open("exec Mega_Day_Close;10 @DayDate=" + DayDate.ToString() + " , @Mode= " + Mode.ToString())) { while (RecordSet.Read()) { if (CCommon.CInt(RecordSet["Cnt"]) == 0) { MNames.Add(CCommon.Left(RecordSet["Name"], MenuItemWidth) + "*"); } else { MNames.Add(CCommon.Left(RecordSet["Name"], MenuItemWidth) + "* " + RecordSet["Cnt"].Trim()); } MCommands.Add(RecordSet["Command"]); MParams.Add(RecordSet["Params"]); MKinds.Add(RecordSet["Kind"]); Result = true; } } else { Result = false; } RecordSet.Close(); int MenuCount = MNames.Count; MenuNames = new string[MenuCount]; MenuKinds = new string[MenuCount]; MenuParams = new string[MenuCount]; MenuCommands = new string[MenuCount]; MenuCount = 0; foreach (string MenuName in MNames) { MenuNames[MenuCount++] = MenuName; } MenuCount = 0; foreach (string MenuKind in MKinds) { MenuKinds[MenuCount++] = MenuKind; } MenuCount = 0; foreach (string MenuParam in MParams) { MenuParams[MenuCount++] = MenuParam; } MenuCount = 0; foreach (string MenuCommand in MCommands) { MenuCommands[MenuCount++] = MenuCommand; } MCommands.Clear(); MParams.Clear(); MKinds.Clear(); MNames.Clear(); Connection.Close(); return(Result); }