|
I would like to load different web page depending on browser. for example
I have internetexp.aspx and chrome.aspx.
if user browser is chrome it should load chorme.aspx page if other then chrome browser it should load internetexp.aspx.
how can i achieve this?
|
|
|
|
|
Request.Browser[^] which is of type HttpBrowserCapabilities[^] has a property called Browser[^] which you can use to detect the browser that is using the application. From there, you should be able to do a redirect to the specific page depending on what is in the value of that particular property.
Signature construction in progress. Sorry for the inconvenience.
Damn you have the perfect signature - CBadger
|
|
|
|
|
Hi all, my home page accesses a csv file when it loads and populates certain elements on the page with data from the csv file. Right now I have yet to implement authentication so there is no need to login. I tried to see how its performance will be affected by multiple users accessing the csv file simultaneously by hosting this app on my home server and opening the app in multiple tabs in IE.
The page hangs and I had to reset my server each time it hangs. So the question I have is, is opening the same app (copying and pasting the url) in a new tab considered to be using the same session or is it considered to be using a new session.
If the app is hanging due to the same session being used multiple times simultaneously, how do I solve this problem? Thanks for your help.
modified 31-Mar-15 10:22am.
|
|
|
|
|
How are you opening and reading the CSV file? If it's opened without allowing for a shared read all other browser requests will not be filled until the first request closes the file.
Frankly, a CSV file is not a proper data store for a web application because of the very problem you're running into.
One solution is, if the data isn't changing in the CSV file, to read the data once and cache it for future requests.
Another is to just import the data into a database engine and the web app reads it from there.
|
|
|
|
|
Hi Dave, thanks for replying. You said that I can allow shared read of text files. Is this something I can configure on the server? Thanks again for your help.
|
|
|
|
|
You configure it in the code that you use to read the file in. As you haven't shown any of your code for reading in the file contents, we can't be much more help I'm afraid.
|
|
|
|
|
MadDashCoder wrote: Is this something I can configure on the server? No, it would open a can of worms if the admin would have to configure that for each file that the application opens. It is determined by the developer. See MSDN[^].
In short; a CSV file is a text file. Updating it means that it has to be locked, and while it is being updated it cannot be read.
Ideally, you'd replace the CSV file with a (simple) database. I'm using SQLite in those places, as it is easy, free, and available under Linux/Mono.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I have some sample code I cannot get to work. I think its because I'm tired. I am trying to send strings from a randomly generated text file. The goal is to find the lowest random # representative string. I have sent the strings as arguments to a method that is supposed to loop through the text file and see if there is a match and when the string is found display it in a rich text file. When I do this with a messagebox it works fine displaying the correct order of argument matches with text string matches in the loop however when I try to send it straight to the textbox it returns the last match. I know this is a silly way to do this but I cannot use an array or assign variables to the # or use an array.
private void smallBtn_Click(object sender, EventArgs e)
{
FindSmall("1"); FindSmall("2"); FindSmall("3"); FindSmall("4"); FindSmall("5"); FindSmall("6"); FindSmall("7"); FindSmall("8"); FindSmall("9"); FindSmall("10"); FindSmall("11"); FindSmall("12"); FindSmall("13"); FindSmall("14"); FindSmall("15"); FindSmall("16"); FindSmall("17"); FindSmall("18"); FindSmall("19"); FindSmall("20"); FindSmall("21"); FindSmall("22"); FindSmall("23"); FindSmall("24"); FindSmall("25"); FindSmall("26"); FindSmall("27"); FindSmall("28"); FindSmall("29"); FindSmall("30");
FindSmall("31"); FindSmall("32"); FindSmall("33"); FindSmall("34"); FindSmall("35"); FindSmall("36"); FindSmall("37"); FindSmall("38"); FindSmall("39"); FindSmall("40");
}
private void FindSmall(string searchKey1)
{<br />
string path = @"C:Random # File.txt";
StreamReader sr = new StreamReader(path);
for (int k = 0; k < 20; k++)
{
if (sr.ReadLine().Equals(searchKey1))
{
richTextBox1.Text = "The smallest Number is: " + searchKey1.ToString();
break;
}
|
|
|
|
|
Well yes - it will.
When you find a solution, it displays it:
richTextBox1.Text = "The smallest Number is: " + searchKey1.ToString(); Which replaces any existing text!
Did you mean:
richTextBox1.Text = "The smallest Number is: " += searchKey1.ToString();
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
|
well now when I place += it tells me the left side must be a variable or indexer oh well
|
|
|
|
|
I stuck it in the wrong place!
Try:
richTextBox1.Text += "The smallest Number is: " + searchKey1.ToString();
It's the Alzheimer's, I tell you...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
that worked but now its doing this:
The smallest Number is: 2The smallest Number is: 3The smallest Number is: 5The smallest Number is: 8The smallest Number is: 9The smallest Number is: 14The smallest Number is: 16The smallest Number is: 17The smallest Number is: 18The smallest Number is: 22The smallest Number is: 24The smallest Number is: 25The smallest Number is: 31The smallest Number is: 32The smallest Number is: 34
I thought the break statement was to stop the loop?
sorry I had the break out of focus
that worked great thanks for the help I just could not see it. that happens to me after i've been looking at something for a while.
take care
|
|
|
|
|
"I thought the break statement was to stop the loop?"
It does.
But it doesn't stop all the other calls to the same method from outside!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
how would I go about finding the lowest number in a text file w/o comparing each string in order without parsing it into an array and doing a bubble,selection or insertion sort on it.....any ideas, I'm at a loss.
|
|
|
|
|
OK. What's in your text file?
Is it just the numbers? Or is there other text in there?
Any line breaks or other characters?
Can you post a small sample?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
the text file looks like this it is all #s and it is randomly generated each time
the app is run
40
12
1
7
24
28
7
33
27
I have to do 2 things with the text file that is generated. I have to put the #s in order and find the lowest one without using an array or assigning variables to be parsed. I have been researching the file class trying to see if i could create a temp file to hold them and then sort the temp file contents in some way. It is a hard problem given the constraints of not being able to use an array and a simple sort.
|
|
|
|
|
You can't put the numbers in order without storing them in some way!
There is a Linq/Regex based solution:
string inp = "40 12 1 7 24 28 7 33 27";
int min = Regex.Matches(inp, @"\d+").Cast<Match>().Min(m => int.Parse(m.Value));
But if this is your homework then that probably isn't any use to you!
What are you allowed to do, and what do you know how to do? (Did any of that one line of code make sense?)
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
a little of it made sense I have studied regex a little. the problem is this is only my 3rd C#
class and I try to watch utube video tutorials as often as I can. I started in java.
the .NET library is impressive and I'm just now getting into it. The only clues the professor has given are that after we build the random generated text file with 20 numbers we are to use file manipulation methods to sort the #s. I only know the basics of streamreader and writer. the other hint he gave us was that we could create as many temp files to hold the numbers and merge them into a Sorted.txt file which we have to print those to a windows form richTextBox which does not have the capability of sorting. I was researching the capabilities of using the text files as containers.
|
|
|
|
|
That expression worked well....
However how do you get it to only write it one time..
it wrote it 40 times. I guess I'll research the regular expressions classes
thanks
|
|
|
|
|
Forget that way to do it - you don't need it (if your numbers are all on separate lines) and it's a bit advanced for what you have been asked to do.
There are a large number of ways to do this within the spirit and (mostly) the letter of what you professor asked.
The first is probably cheating, but it very, very simple:
Read each line from the fle, convert the number to an integer (which you need to do in order to compare them, string comparisons are different) and write each number to a separate file in a new empty folder:
File.WriteAllText(@"D:\Temp\AF\" + i.ToString("0000") + ".txt", i.ToString());
That will create each value as a separate file, called the number it contains (padded to 4 digits with zeros).
Then when you read the files list, Windows will sort it for you...
Probably cheating, as I said...
The next is to use Seek to treat a file as a block of memory.
If you read your input file line by line, and write it to a new file using ToString("0000") you will end up with a file containing equally spaced values - each one occupies 4 bytes. So if you use Stream.Seek, you can treat the file as an array, and write a quick Bubble sort method to sort the values within that file. You can then read the file, and generate your sorted.txt file from that.
The options tend to get a bit more complex from there on!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
thanks for the direction, How long have you been doing this?
|
|
|
|
|
C#? 5 or 6 years, probably.
Computing? Started at Uni in 1977...with COBOL
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
If your still around I cant get thee files to assign the values of the temp file. Ill keep working on it as usual. When I assign i.toString it just names the files 1-20 in order and does not assign the actual number read from the other file.
private void button2_Click(object sender, EventArgs e)
{
string path = @"C:Random # File.txt";
StreamReader readtext = new StreamReader(path);
StreamWriter writetext = new StreamWriter("write.txt");
for (int j = 0; j < 20; j++)
{
string readmetext = readtext.ReadLine();<br />
writetext.WriteLine(Convert.ToInt32(readmetext));
<pre>
}
writetext.Close();
readtext.Close();
StreamReader rt = new StreamReader("write.txt");
File.WriteAllText(@"C:\Users\grantlinhart\Documents\Visual Studio 2013\Projects\InputOut\InputOut\bin\Debug\temp\"
+ i.ToString("0000") + ".txt", i.ToString());
MessageBox.Show("temp created");</pre>
|
|
|
|
|
Stop guessing, and look at your code.
This isn't a subject where guesswork is rewarded - you have to think about what you are doing!
Your code writes sequential numbers into the files, because that is exactly what you told it to do.
Instead of using the number you read from the input file, you are creating the files using a random value of "i"...
And what do you expect your code in the actual loop to do? What does writing pretty much exactly what you read do that is useful?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|