|
I have used the following code. when the "Quescnt" and the "max value(Int32.Parse(ds.Tables[1].Rows[cnt-1][0].ToString()))" are equal, its going to infinite loop.
static int TheSeed = (int)DateTime.Now.Ticks;
Random RandomClass = new Random(TheSeed);
string Randomnos = string.Empty;
for (int i = 0; i < Quescnt ; i++)
{
int RandomNumber = RandomClass.Next(Int32.Parse(ds.Tables[1].Rows[0][0].ToString()), Int32.Parse(ds.Tables[1].Rows[cnt-1][0].ToString()));
if (!Randomnos.ToString().Contains(RandomNumber.ToString() + ","))
{
Randomnos = Randomnos + RandomNumber.ToString() + ", ";
}
else
{
Quescnt++;
}
}
|
|
|
|
|
This code is a disaster ? what on earth are you trying to do ?
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
Firstly, use the "code block" button to preserve your formatting when posting code fragments - it makes it easier to read.
I have pared your fragment down to the relevent bits:
string Randomnos = string.Empty;
for (int i = 0; i < Quescnt ; i++)
{
int RandomNumber = RandomClass.Next();
if (!Randomnos.ToString().Contains(RandomNumber.ToString() + ","))
{
Randomnos = "Not an empty string any more.";
}
else
{
Quescnt++;
}
}
So, when you first enter the loop, and Randomnos == "", what is going to happen?
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
Well spotted. I found the whole thing far too hard to read, and I always like in the first instance to try to get these people to at least try to use the debugger before asking us to do their job for them.
I am losing all faith in development as a respectable profession. I think I should become a plumber.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
Whenever I see a loop termination variable that changes in the loop, I just think: "where do they get these people?"
Christian Graus wrote: I think I should become a plumber
Not a bad choice: in the UK at least, you can earn more for less work!
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
Yes, I agree.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
Christian Graus wrote: I think I should become a plumber.
I've been thinking electrician. Plumbing was an idea, but you end up having to deal with septic tanks and pipes clogged with things no one ever wants to know about.
The true man wants two things: danger and play. For that reason he wants woman, as the most dangerous plaything.
|
|
|
|
|
I wonder if you can help me?
I've been trying to fit a new washer to my kitchen tap for some time. Should I use C# or VB.Net for this?
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Neither - it's a hardware problem...
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
hi thanks for the reply.
i want to copy all the random's numbers in a string separating by a comma.
i.e Randomnos = "2,5,3,1,4";
This "Quescnt" comes from database.
when this Quescnt and the MaxValue in RandomClass.Next(Min, Max) are equal, its going to infinite loop.
|
|
|
|
|
And why is that ? Have you used the debugger to see what is going on ?
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
vasavi.p wrote: when this Quescnt and the MaxValue in RandomClass.Next(Min, Max) are equal, its going to infinite loop
No, it's going to infinite loop under all circumstances.
Try running it though the debugger. What is your "code" actually doing?
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
There's a debugger ?
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
Yeah - you just have to enable it:
Type "Format c: /s" at a command prompt and press ENTER. Just say YES to any of those silly questions, you don't need to read them...
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
I'll stop pressing ENTER before using this debugger.
|
|
|
|
|
hi
try with the below code
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "";
int Quescnt = 6;
string Randomnos = string.Empty;
for (int i = 0; i < Quescnt; i++)
{
int RandomNumber = RandomClass.Next(28, 37);
if (!Randomnos.ToString().Contains(RandomNumber.ToString() + ","))
{
Randomnos = Randomnos + RandomNumber.ToString() + ", ";
}
else
{
Quescnt++;
}
}
Label1.Text = Randomnos;
}
and try with this too[this will go to infinite loop]
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "";
int Quescnt = 6;
string Randomnos = string.Empty;
for (int i = 0; i < Quescnt; i++)
{
int RandomNumber = RandomClass.Next(28, 33);
if (!Randomnos.ToString().Contains(RandomNumber.ToString() + ","))
{
Randomnos = Randomnos + RandomNumber.ToString() + ", ";
}
else
{
Quescnt++;
}
}
Label1.Text = Randomnos;
}
|
|
|
|
|
I am not even going to look at them until you have preserved the formatting - why should I even slightly struggle? Remember the "code block" button above?
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
I will refrain form making any comment except to point out that you have the following for loop:
for (int i = 0; i < Quescnt; i++)
and within this loop you have the following statement
Quescnt++;
Using the debugger could have helped you locate this fairly quickly.
|
|
|
|
|
Irrespective of this error, s/he's not going to get 6 unique random numbers from a range of only 5 possibilities.
|
|
|
|
|
J4amieC wrote: Irrespective of this error, s/he's not going to get 6 unique random numbers from a range of only 5 possibilities.
I thought s/he's complaining that it goes into an infinite loop. There seems little point in worrying about anything else until that logic is fixed.
|
|
|
|
|
I thought it was going into an infinite loop because its looking for the next unique random number, and all possibilities have already been found.
|
|
|
|
|
J4amieC wrote: I thought it was going into an infinite loop because its looking for the next unique random number, and all possibilities have already been found.
In the following code:
for (int i = 0; i < Quescnt; i++)
{
int RandomNumber = RandomClass.Next(28, 33);
if (!Randomnos.ToString().Contains(RandomNumber.ToString() + ","))
{
Randomnos = Randomnos + RandomNumber.ToString() + ", ";
}
else
{
Quescnt++;
}
}
every time it hits the else clause it is incrementing Quescnt so the for loop will keep going because Quescnt will always stay ahead of the loop variable.
|
|
|
|
|
vasavi.p wrote: and try with this too[this will go to infinite loop]
Now for extra credit (that is, beyond being able to blindly paste your code into this window) can you tell us why this goes into an infinite loop?
Hint:-
Documentation :Random.Next(Int32,Int32)[^]
Relevant part of documentation:
minValue
Type: System..::.Int32
The inclusive lower bound of the random number returned.
maxValue
Type: System..::.Int32
The exclusive upper bound of the random number returned. maxValue must be greater than or equal to minValue.
|
|
|
|
|
|
Hi all
on form closing event i check if it is windows shutdown and if yes i uninstall the program it is not working for me.
i tried writting to a log file on form closing event if it is windows shutdown it worked.
from another application on ckick of a button also the uninstall program worked.
plz help me
private void ChatApplication_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.WindowsShutDown)
{
Uninstall();
}
}
private static void Uninstall()
{
Process oProcess = new Process();
oProcess.StartInfo.FileName = "cmd.exe";
oProcess.StartInfo.CreateNoWindow = true;
oProcess.StartInfo.UseShellExecute = false;
RegistryKey oRegKey = null;
string sUninstallString = "";
string[] asSubKeys = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\").GetSubKeyNames();
foreach (string sSubKey in asSubKeys)
{
oRegKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + sSubKey);
if (oRegKey.GetValue("Displayname") != null && oRegKey.GetValue("Displayname").ToString() == "Setup1")
{
sUninstallString = oRegKey.GetValue("Uninstallstring").ToString();
break;
}
}
if (sUninstallString.LastIndexOf("exe") != (sUninstallString.Length - 3))
{
sUninstallString = sUninstallString.Remove(0, 14);
oProcess.StartInfo.Arguments = "/k msiexec.exe /x" + sUninstallString;
}
else
{
sUninstallString = sUninstallString.Replace("C:\\", "");
string sExe = sUninstallString.Substring(sUninstallString.LastIndexOf('\\') + 1);
sUninstallString = sUninstallString.Remove(sUninstallString.LastIndexOf('\\'));
oProcess.StartInfo.Arguments = ("/k cd\\ & cd " + sUninstallString + " & " + sExe);
}
oProcess.StartInfo.RedirectStandardError = true;
oProcess.Start();
oProcess.WaitForExit();
oProcess.Close();
oProcess.Dispose();
}
|
|
|
|