|
vasavi.p wrote: Need the randomization of numbers without repeatation using c#
Good. You've got the beginnings of a specification there; it needs fleshing out, but it's a decent start. What have you accomplished so far?
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
here's some pseudocode
repeat
r = get random number
until r is a new unique number
remember you've seen r before
Implementation is left as an exercise to the reader
|
|
|
|
|
that may take forever.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
An easier way would be to reseed the randomizer after every call with a value greater than the last returned result. It's not a great way, but it cuts out the checking.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
When N "random" numbers in [0, RANGE) need to be unique, the range typically is small, so I prefer to put them all in a bag and use a random index to get them, one by one. So there is no need for a retry.
And the problem has no solution for N>RANGE so some precautions need to be taken in any algorithm based on retrying.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
You could also shuffle your bag and just pop the top entry each time, depending on where the bottleneck ends up being
|
|
|
|
|
That would take a Random Shuffle Generator, which isn't provided by the .NET Framework as of now.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Would that work?
Since the next random value could be less than the seed, you could re-seed with a value you've used previously.
There are three kinds of people in the world - those who can count and those who can't...
|
|
|
|
|
What I was thinking was actually using Random.Next with the starting value being the value you've just retrieved + some small amount as the starting point, e.g. Random.Next(lastVal + 1, lastVal + 100) .
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
I'm afraid there is no way you can tell the RNG what all the numbers are that have already been picked, so the best you can achieve is avoid repeating the previous number, not all the older ones.
Of course if all the OP wants to avoid is consecutive duplication, then your way would be fine.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Pete O'Hanlon wrote: Random.Next(lastVal + 1, lastVal + 100)
Erm, doesn't that just give you a monotonically increasing set of values?
There are three kinds of people in the world - those who can count and those who can't...
|
|
|
|
|
Yes - I'm not saying it's the way I'd do it, just that it is a way.
"WPF has many lovers. It's a veritable porn star!" - Josh Smith As Braveheart once said, "You can take our freedom but you'll never take our Hobnobs!" - Martin Hughes.
My blog | My articles | MoXAML PowerToys | Onyx
|
|
|
|
|
Yup, but the OP didn't really specify enough to say what he actually wanted, so I gave a generic, if not necessarily useful answer.
|
|
|
|
|
People ask that frequently here, have you searched the threads in this forum?
|
|
|
|
|
How many non-repeating random numbers are you going to want to get ?
What is the range of random numbers - are they integers or real.
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
Hi
The procedure below takes a name from the Numbe array and places it in a directory path to find an image file to insert into a word document. All the images are numbered 1,2,3,4.... however, when the number gets bigger than 101 then the compiler complains that the file name is invalid, the file does exist so i can't figure out what is invalid about it?
public void CreateFileColumn(ArrayList array, Array Numbe)
{
object missing = System.Reflection.Missing.Value;
object fileName = "normal.dot";
object newTemplate = false;
object docType = 0;
object isVisible = true;
Object oUnit = Word.WdUnits.wdCell;
string FilePath;
wordApp = new Word.ApplicationClass();
wordDoc = wordApp.Documents.Add(ref fileName, ref newTemplate, ref docType, ref isVisible);
wordApp.Visible = true;
wordDoc.Activate();
wordApp.Selection.Tables.Add(wordApp.Selection.Range, 1, 8, ref missing, ref missing);
wordApp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
wordApp.Selection.Font.Bold = (int)Word.WdConstants.wdToggle;
foreach (string part in Numbe)
{
FilePath = @"C:\Users\Jon\Documents\Nick\Chin Font Files\" + part + ".jpg";
wordApp.Selection.InlineShapes.AddPicture(FilePath , ref missing, ref missing, ref missing);
wordApp.Selection.MoveRight(ref oUnit, ref missing, ref missing);
}
}
Thanks
|
|
|
|
|
Hi,
I would need a lot more information to figure this one out.
What is the exact error/exception message? in what line does it occur? which app is giving it: yours or Word?
what is in Numbe?
if you skip the first half of Numbe, does it stop at the same image? if so, there might be a problem with that particular image file? if not, there is some capacity problem, maybe an out-of-memory in Word, a horizontal overflow, ...
three more remarks:
- I would add an overall try-catch construct, and show Exception.ToString()
- is this really C# code? it looks more like PHP, you don't like typed languages do you? what's with all those objects, and why is a string array passed as Array?
- maybe there is an entirely different and more appropriate way to solve the real problem. You seem to be painting chinese text using lots of small images.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Your remarks are all very true, i started programming PHP and very new to C#, about a week ago to be precise. I am trying to make a program that takes a raw text file of numbers and then converts those numbers into Chinese characters, which were hand drawn and scanned in as jpg. So the text file contains something like 1.2.3.4.5. and so forth, so the full stop allows the string to be split and placed into an array. This is then cycled through and the image added to word document which has the same number.
A few reasons for doing it this way is because i want to be able decided how the tables are laid out in word. So i might want them to list in columns and decide how many columns are on each page, the same with rows.
Overall you could say this is trying to automate the process of inserting images into a word document.
The script always works if the number is below 101, as soon as it goes to 102 or higher it causes the error. I have tried changing image names which i know work and the error still is thrown. Therefore, the error is thrown in my code but i don't know whether it could be word causing the problem
the error is on this line:
wordApp.Selection.InlineShapes.AddPicture(FilePath , ref missing, ref missing, ref missing);
saying that FilePath is not a valid file name
I would of thought it would of been an overflow problem if there was already a large number of images, however, if you just type 102 in the raw text file it will cause an error immediately, before it has chance to even add one file to the document.
Numbe is an array which contains all the numbers of the text file, one number in each element of the array.
|
|
|
|
|
OK, so no major surprises here.
You can declare string[] Numbe instead of Array; that way the compiler knows it will be strings and string operations are acceptable. Similar things for all your "objects": when you give them a more accurate type declaration, the compiler will be more capable of flagging errors if any, your source code will be more readable, and the running code will probably run a bit faster.
Try images 103, 101 and 102. If 102 is the odd one out, then check the image file itself, chances are it is damaged somehow (try replacing it with a copy of 101! ). [Sorry, this doesn't fit your problem description]
I suggest you print out FilePath before calling AddPicture; chances are you will see a problem with the file name. You might consider showing the code that produces the Numbe array, maybe something is wrong there.
As you are new to a language, I recommend studying a book[^].
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
I have tried a mixture of numbers and images, which are copies of the same image. It works for a selection like:
1.4.8.120
as soon as you hit 120 it fails, same if that number is any number between 102 up. The files are ok as i have swapped them around many times. if the sequence starts on a high number like 103 then it will fail immediately.
thanks for your help.
|
|
|
|
|
I am using crystal reports in my window application in .net 2.0. I got the error as "Load Report Failed"
How can I solve this
|
|
|
|
|
be more specific. Otherwise it is hard to tell anything.
|
|
|
|
|
hi.
i have web page that contain a button. here is button's code:
<button type="submit" class="btn" style="width: 200; height: 22" onclick="setAction(method,'save');"><br />
<img border="0" src="/evocher/html/image/blt_01.gif" width="13" height="11"<br />
align="absmiddle">Register</button>
i write this code to obtain button:
mshtml.HTMLDocument doc;
HTMLInputElement registerButton = (HTMLInputElement)doc.getElementsByTagName("button");
but it generate runtime error, Invalid TypeCasting.
how can obtain this button?
|
|
|
|
|
getElementsByTagName returns a collection of objects. You try to treat it like a single object. I don't know the exact type of the collection, but I would assume that you need to cast it to something like a HTMLCollection
Between the idea
And the reality
Between the motion
And the act
Falls the Shadow
|
|
|
|
|
try
Button btn = (button).FindControl("the control Id goes here );
|
|
|
|