|
hello Turan,
I found a solution. i just add the text.encoding UTF-8 to my code:
this.Response.ContentEncoding = Encoding.GetEncoding ("UTF-8");
I open my file with an Xml editor all works fine and my File is well structred.
Thank u a lot for u help and I am now sssssssssssssssso happy.
|
|
|
|
|
Awesome!
People with high attitude deserve the standing ovation of our highest finger!
My Blog![ ^]
|
|
|
|
|
If you are already generating the document in your application then why would you need to import it again. Just save it to where the user wants it when you generate it, rather than saving it to your application directory.
If you want to prompt the user for a save location then use the SaveFileDialog[^]
Also, if you want to just copy a file from one location to another then use System.IO.File.Copy()
I may or may not be responsible for my own actions
|
|
|
|
|
Hi,
I need to read Remote server Directories through FTP Credentials and bind remote directory
structure to Tree View Control.
Please suggest me better way.
Regards,
Vishnu.
|
|
|
|
|
Use FTPWebRequest[^] class. You can get the directory list from here and create your treeview based on that
I may or may not be responsible for my own actions
|
|
|
|
|
Hi,
I tried with above link but it is not working .Please suggest me better way.
Regards,
Vishnu.
|
|
|
|
|
What is not working... show some code.
If it is not working, then a better way would be to make it work
I may or may not be responsible for my own actions
|
|
|
|
|
Hi,
I tried with below code and i'm getting only root directories not sub directories , i need to get sub directories
please suggest me better way.
string ftpServerIP = "75.125.2.193";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpServerIP + "/");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
request.Credentials = new NetworkCredential("barikgr2", "barik122");
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string line;
while ((line = reader.ReadLine()) != null)
{
TreeNode node = new TreeNode();
string[] _arv = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);
node.Text = _arv[3];
treeView1.Nodes.Add(node);
}
reader.Close();
response.Close();
Regards,
Vishnu.
|
|
|
|
|
Hi,
My code below is in a windows service:
Can you see from the code here, why the backgroundworker_DoWork only gets called once?
I expect it to be called every 200 milliseconds.
There is a timer which gets called every few seconds i.e. OnElapsedTime which does other checks.
But I am trying to have a backgroundworker to run the method GetStatus(); every 200 milliseconds
private static BackgroundWorker _backgroundWorker;
internal static BackgroundWorker BackgroundWorker { get { return _backgroundWorker; } }
private void Initialize()
{
_backgroundWorker = new BackgroundWorker();
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.DoWork += new DoWorkEventHandler(BackgroundWorker_DoWork);
_backgroundWorker.RunWorkerAsync();
timer.Elapsed += new System.Timers.ElapsedEventHandler(OnElapsedTime);
timer.Enabled = true;
}
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (_backgroundWorker.CancellationPending)
{
e.Cancel = true;
return;
}
GetStatus();
Thread.Sleep(200);
}
|
|
|
|
|
It only runs once because you are only calling it once. What is you code for your OnElapsedTime event?
Also, why are you using Thread.Sleep in your DoWork event?
I may or may not be responsible for my own actions
|
|
|
|
|
I have used sleep because I want to call the Do_Work every 200ms
I am under the impression that the Do_Work event should get called every 200 ms but when debugging it seems that is not the case.
What should I do so that the DO_Work gets called every 200ms in a different thread?
Thanks
|
|
|
|
|
arkiboys wrote: What should I do so that the DO_Work gets called every 200ms in a different thread?
Windows isn't a realtime OS, and there won't be a guarantee that your code will spawn a new thread every 200 ms. Depends on how busy the system is - if the threadpool is empty, the BGW will have to wait until another thread is available
I are Troll
|
|
|
|
|
The DoWork event is not a loop. You need to call RunWorkerAsync every time you want it to run. This would be best done in your timer event hander and you should remove the thread.sleep call as it is of no benefit to you. There is also little point in having a CancellationPending check as the first thing your DoWork event does - I think you would find it very difficult to see that ever returning true (even if you try to make it happen)
private static BackgroundWorker _backgroundWorker;
internal static BackgroundWorker BackgroundWorker { get { return _backgroundWorker; } }
private void Initialize()
{
_backgroundWorker = new BackgroundWorker();
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.DoWork += new DoWorkEventHandler(BackgroundWorker_DoWork);
_backgroundWorker.RunWorkerAsync();
timer.Interval = 200;
timer.Elapsed += new System.Timers.ElapsedEventHandler(OnElapsedTime);
timer.Start();
}
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
GetStatus();
}
void OnElapsedTime(object sender, System.Timers.ElapsedEventArgs e)
{
if(!_backgroundWorker.IsBusy)
_backgroundWorker.RunWorkerAsync();
}
I may or may not be responsible for my own actions
|
|
|
|
|
|
Have you not learned how to debug applications yet? You've asked so many questions where this basic skill would have answered it for you. Set a breakpoint in your code and step through the background worker - all will become apparent. BTW - Thread.Sleep is a plain stupid way to code. Read up on what it does to find out why you shouldn't use it.
|
|
|
|
|
Hi Pete,
Please read my reply to musefan.
I do debug the app...
Thank you
|
|
|
|
|
you're wrong and Pete is right. I suggest you read his reply a couple more times until it sinks in.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
modified on Friday, March 11, 2011 7:04 AM
|
|
|
|
|
Had you debugged it, you'd have noticed immediately that there was no loop condition and that the background worker completes after one run through.
|
|
|
|
|
I have made the necessary changes.
It seems to be working as a new thread now.
I will continue testing and come back to you if there is a query.
Thank you
|
|
|
|
|
Unfortunately, you (you specifically -- and a couple of other guys) continue to spoon feed him and hold his hand on *every* question (and yeah, he asks a ton), so why should he bother to learn how to do anything for himself? He knows that when he hits F5 and something bad happens, its off to the CP forums and good ol' Pete and good ol' Griff will hold his hand as usual and wipe his butt for him. Although, I have noticed lately, you seem to be getting annoyed with him , so maybe you'll stop with the hand holding soon and Arkiboys will finally man the f up and learn his craft. However, I think its pretty obvious that Arkiboys doesn't really have any interest in learning anything because people point him to links, etc. and he still comes back 5 seconds later and says "but... its too hard... ".
Not bashing you in general Pete, I think its great that you help everybody out...
... but in the case of Arkiboys? the guy is just clueless and hopeless. I only read his threads for strictly comedic purposes.
|
|
|
|
|
Your code only starts the background worker thread once - in your Initialize() function. All the Tread.Sleep(200) does is to pause the excution of the background worker's DoWork event handler for 200 milliseconds.
If you want to run the background worker thread event every 200 milliseconds, you would need to create a timer that fires its Elapsed event every 200 milliseconds. In the timer's Elapsed event handler, you would invoke the background worker RunWorkerAsync() method.
|
|
|
|
|
Do you mean like this?
private System.Timers.Timer timerStatus = new System.Timers.Timer(200);
Initialize()
{
_backgroundWorker = new BackgroundWorker();
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.WorkerReportsProgress = true;
_backgroundWorker.DoWork += new DoWorkEventHandler(BackgroundWorker_DoWork);
_backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_backgroundWorker_RunWorkerCompleted);
timerStatus.Elapsed += new System.Timers.ElapsedEventHandler(OnElapsedTimeStatus);
timerStatus.Enabled = true;
}
private void OnElapsedTimeStatus(object source, System.Timers.ElapsedEventArgs e)
{
_backgroundWorker.RunWorkerAsync();
}
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
if (_backgroundWorker.CancellationPending)
{
e.Cancel = true;
return;
}
MonitorStatus();
}
|
|
|
|
|
Yes - that's what I mean.
|
|
|
|
|
I think I have it working now but I will continue to debug and test...
Is it ok, to use a while loop instead of a timer?
|
|
|
|
|
I would not recommend it. You might get away with it if the while loop was running in it's own separate thread.
|
|
|
|