Ads 468x60px

Smaller time frame always follow the bigger time frame. It's better wait be patience to enter in position than risk with BIG SL. Having strong trading discipline and taking losses when necessary is a sign of serious trading approach

Saturday, August 11, 2012

SHUFFLE STRINGS


So you don't like ordered / sorted string lists? Well, whatever the reason you have behind shuffling a string list, the following ShuffleStrings() function will do it for you.
All you have to do is pass the string list (type of TStrings) you want to shuffle and the intensity. "Intensity" is just a number between 1 and the number of strings in your string list.ShuffleStrings() function will use this value to find out how many times it should shuffle. If you're not sure about this number, simply pass 0, and ShuffleStrings() will use the count of strings in your string list.


procedure ShuffleStrings(
  sl : TStrings;
  nIntensity : integer );
var
  n1, n2, n3 : integer;
  s1         : string;        
begin
  if(0 = nIntensity)then
  begin
    nIntensity := sl.Count;
  end else
  if(nIntensity > sl.Count)then
  begin
    nIntensity := sl.Count;
  end;

  Randomize;
  
  for n1 := 1 to nIntensity do
  begin
    n2 := Random( nIntensity );
    n3 := Random( nIntensity );

    s1             := sl.Strings[n3];
    sl.Strings[n3] := sl.Strings[n2];
    sl.Strings[n2] := s1;
  end;
end;
Example call:

(assuming that you want to shuffle items in your ListBox named listbox1)
ShuffleStrings( ListBox1.Items, 0 );


comments