|
I have a program that behaves differently when running it from inside Visual Studio and running the exe file. I am calling the ftp program to transfer a file, and when I run the exe file, the ftp program hardly provides any output at all. The file is transferred all right, but I get no response at all from the ftp progam that it did.
This is what the output looks like when I run the program from inside Visual Studio:
-----
ftp> Connected to photo.guffa.com.
open photo.guffa.com
220 Microsoft FTP Service
User (photo.guffa.com:(none)):
331 Password required for guffa.
230 User guffa logged in.
ftp> cd UnusedPhotos/large
250 CWD command successful.
ftp> put G:\TRIPPER\large\991-11895.jpg
200 PORT command successful.
150 Opening ASCII mode data connection for 991-11895.jpg.
226 Transfer complete.
ftp: 257154 bytes sent in 0,25Seconds 1028,62Kbytes/sec.
ftp> ftp> close
quit
-----
This is how it looks when I run the exe file:
----
User (photo.guffa.com:(none)): open photo.guffa.com
cd UnusedPhotos/large
put G:\TRIPPER\large\991-11895.jpg
close
quit
-----
I built the code from reading the MSDN documentation, then I saw this article: C# corner: Redirecting Standard Input/Output using the Process Class[^], and it doesn't seem like I have forgotten anything.
Here is the code that I use to call the ftp program. The tempName string contains the full path of a text file with the commands for the ftp program.
info = new ProcessStartInfo("ftp", "-s:\"" + tempName + "\"");<br />
info.UseShellExecute = false;<br />
info.RedirectStandardOutput = true;<br />
info.RedirectStandardError = true;<br />
info.CreateNoWindow = true;<br />
process = Process.Start(info);<br />
output = process.StandardOutput.ReadToEnd();<br />
error = process.StandardError.ReadToEnd();<br />
process.Dispose();
I display both the output and error strings, so I see that there are no error output from the program either.
Anyone got a clue why the program only works when run from inside Visual Studio?
---
b { font-weight: normal; }
|
|
|
|
|
Hi,
I would like to describe two way of declaring properties
(1)
public string Get_Set<br />
{<br />
get<br />
{<br />
return get_set;<br />
}<br />
set<br />
{<br />
get_set=value;<br />
}<br />
}
(2)
public string Get_Set<br />
{<br />
get<br />
{<br />
return get_set;<br />
}<br />
set<br />
{<br />
if(get_set!=value) <br />
get_set=value;<br />
}<br />
}
I would like to clear few things in property declaration.
a) From the above two property declaration , which one is best while considering efficient resource utilization.
b) If the above given examples are not good enough , then which one is best way of declaring a property.
Comment with detailed description will be highly appreciable.
Sreejith Nair
[ My Articles ]
|
|
|
|
|
Hello,
For simplicity, if it's only setting a variable and not doing something else, I'd use the first case:
public string MyProperty
{
get { return myProperty; }
set { myProperty = value; }
} If setting the property implies other operations, then, depending on them, I would check the previous value. For example, if when a property is set to false I need to remove an event handler, I would check before that the property was not already false , so I don't remove the handler twice. But for simple properties that only set variables, no need to check.
-- LuisR
Luis Alonso Ramos
Intelectix - Chihuahua, Mexico
Not much here: My CP Blog!
The amount of sleep the average person needs is five more minutes. -- Vikram A Punathambekar, Aug. 11, 2005
|
|
|
|
|
Hi,
Does anyone know how to load an assembly without locking the file?
Let's say after a dll file is loaded, that dll is locked until
the client application is closed. What I'm looking for is even after
that dll file is loaded, I can still delete that dll from its folder.
The code I'm using is:
Assembly assembly = Assembly.LoadFrom(filename);
Thanks in advance.
|
|
|
|
|
Hi!
What you're looking for is called "Shadow Copy".
This blog[^] tells you everything you need.
Regards,
mav
|
|
|
|
|
what is the correct way to write this???
SetValue("something", 00 00 00 00, Microsoft.Win32.RegistryValueKind.Binary);
|
|
|
|
|
Hi Could you please tell how we create DWORD registry value by C#.Net Programm. In C# we have only one method to set key value:
reg.setValue("","");// It has only two paraments.
How can we provide type and hex or binary data.
Muhamad Waqas Butt
waqasb4all@yahoo.com
|
|
|
|
|
SetValue("something", 0);
will set dword values
|
|
|
|
|
i have a really noobie question... i have a form and when i click a button it opens another form, but how do i make it hide the first form?
|
|
|
|
|
|
yes that worked =)... hmm i would have sworn i had tried that and it hid both of the forms. lmfao well thanks for the help
|
|
|
|
|
LOL if i kept the first form visible while the second form was visible also, how could i hide the first form from the second form?
|
|
|
|
|
|
if you at form2 and want to hide form1 then create an instance of from1 in any button click or in any event
<br />
Form1 f1=new Form1();<br />
f1.Hide();<br />
and if you at Form1 and want to open Form2 and hide Form1 try this
<br />
Form2 f2=new Form2();<br />
f2.Show();<br />
this.Hide();<br />
i hope it work
|
|
|
|
|
Is it possible to have your program be notified when the time on a computer changes? I'm talking about the clock that sits in the system tray...is it possible to, say have your program be notified whenever the hour changes?
Thanks.
- Aaron
|
|
|
|
|
I installed directx 9.0 on my laptop but there were no Direct X Assmeblies installed.
The c++ libraries are there.
Which version should I install. Any links?
|
|
|
|
|
nevermind.
Instaloing the feb 05 extensions solved it
I'm not an expert yet, but I play one at work. Yeah and here too.
|
|
|
|
|
Hello,
I've been working on a custom control that inherits from a windows form. The functionality of the control is complete and now I would like to be able to add it to the Visual Studio tool box so that users can drag and drop it onto their project. I went through and set tags on my public data so that they have default values and descriptions. I then added it to a project to test it out.
It showed up in my control list in Visual Studio; however, when I try and drag it onto my project I receive this error: Object not set to an instance of an object.
I do have a constructor that does not require any parameters; I thought that was the only requirement. Does anyone know of a requirement that I may have missed?
Thanks
|
|
|
|
|
Your Form_Load event must be trying to access a null object. Look into this event and if you can't figure out the problem, the best way to figure out is to use MessageBox to display message prompts that show you the steps through which your application goes when it initializes.
|
|
|
|
|
Actually it is attempting to call a method that requires some user input in order to work right. So are you saying that in order to use a control using the Visual Studio designer all of the code paths in the form load must be able to run without providing any information? If so then this is a flaw in my design.
Thanks
|
|
|
|
|
That's exactly what I am saying. You can troubleshoot by commenting out sections of your code and you can fix it by checking for null objects before executing some initialization that depends on an object that could be null.
|
|
|
|
|
hi my friend how are you ?
may be you create two forms
the main form (form1)of the custom control that inherits from the namespace windows.Forms.Form and another child form (form2)
and then may be you try to initialize the constructor of the main form inside the child form if that the case it will give you an error object not set of an instance of object so you have to make the child form recognize the main form like that
Go to your form2 load event and do the following
<br />
form1 mainform = new form1();<br />
private void form2_load(object sender , eventargs e)<br />
{<br />
mainform = this;<br />
mainform.show();<br />
}<br />
If this is the case of your problem try to figure it out and then reply me
Miss With The Best And Die Like The Rest
|
|
|
|
|
That's actually not what I'm doing. I only have one form and it is inheriting windows.Forms.Form.
Am I required to initialize the base class or something like that? Something like Base.InitializeComponent or something?
Also, am I required to initialize all of my data in my default constructor? I know that it is good programming practice to do so, I'm just wondering if it's a requirement and that I've missed something.
Thanks for your help!
|
|
|
|
|
I have an application that processes large chunk of string data
As the data is processed it passes through various functions that perform specific tasks on the data.
I need this application to work as quickly as possible, using as little memory as possible.
As an example I have these functions :
private string MasterProcess(string data)
{
data = ProcessStage1(data);
data = ProcessStage2(data);
return data
}
private string ProcessStage1(string data)
{
return data
}
private string ProcessStage2(string data)
{
return data
}
if I understand .NET GC correctly, items are collected once they drop out of scope. Following those function examples above, if 5mb of string data came into the MasterProcess when it calls ProcessStage1 the machine now has to hold 10mb.
if I changed the functions to use ref parameters instead, would this prevent this from occuring?
Did that make sense?
Whist on the subject of performance:
Is using static functions a performance hit over using instantiated classes?
post.mode = postmodes.signature;
SELECT everything FROM everywhere WHERE something = something_else;
> 1 Row Returned
> 42
|
|
|
|
|
Items are not collected when they drop out of scope, they are collected when there are no more references to them. When you put a new reference in the data variable, the reference to the original string is replaced. If there are no references to the string elsewhere in the code (e.g. in the code calling the method), it will ge collected.
As strings are immutable, using a ref parameter wouldn't make a difference. If you change a string, it really isn't changed, but replaced by a new string, and the previous string is discarded.
myString += "42";
really works like:
string temp = String.Concat(myString, "42");<br />
myString = null;<br />
myString = temp;
The difference in performance between static and non-static method calls is negligable, if there is a difference at all. Use static methods whenever the method doesn't need any data from the object.
---
b { font-weight: normal; }
|
|
|
|