|
Beautiful! I wasn't quite expecting a full solution, but definite thanks! Works perfectly!
-----
In the land of the blind, the one eyed man is king.
|
|
|
|
|
I just happened to have it lying around from a recent project.
only two letters away from being an asset
|
|
|
|
|
Ok,
I can not for the life of me figure out what is going on here. The problem is that another process is locking one of the files I am trying to read. All I want to do is get the contents of the file and parse them. I'm not writing to the file at all. How can I make this thing work? The only option I can think of is to make a temporary copy of the file and then open that, but that seems rather hackish. The process locking the file is mission critical and runs for hours.
This program is essentially an attempt on my part to periodically parse the logs and notify me if there are errors.
I have the following function:
static string GetFileContents(string fileName)
{
bool success = false;
string ret = string.Empty;
FileInfo fi = new FileInfo(fileName);
while(!success)
{
try
{
using(FileStream fs = fi.Open(FileMode.Open, FileAccess.Read))
{
Console.WriteLine("Reading File {0}", fi.Name);
using(StreamReader sr = new StreamReader(fs))
{
ret = sr.ReadToEnd();
}
fs.Close();
success = true;
}
}
catch(Exception ex)
{
//Some sort of problem reading the file - we'll wait and then try again.
Console.WriteLine("Trouble reading file {0} - Will wait 5 minutes and try again. {1}", fi.Name,DateTime.Now);
System.Diagnostics.Debug.WriteLine(ex);
Thread.Sleep(300000);
}
}
return ret;
}
|
|
|
|
|
Hello
Few Questions:
1- Did you make these logs?? If not, then maybe the other program that made them, is exclusively opening them.
2- Can you open them using the notepad?
3- What exactly is the exception thrown when you open the file??
4- Is it thrown upon File.Open() or upon sr.ReadToEnd() Excution?
5- Do they open upon retrial sometimes, or are they always locked??
Regards
|
|
|
|
|
Hi all,
I have created a class library project in .Net C#.
I want to create a multiple instance of this control in a form based application, same as we create buttons.
But when i drop the control second time, the previous gets disappear. At a time i can see only one instance of control on form, internally it creates different objects of the control.
Please suggest me, how can i do it.
Thanks.
Gajesh
Pune(India)
|
|
|
|
|
ooooook guys heres a little tinker for ya!
im trying to read some fields from Flash FXP (in c#) using the Windows User32 API...
GetWindowText is what il be using...
so i use Microsoft Spy++ to get the Handle for one of the input boxes, lets say for arguments sake its 4134644.. (thats the handle to the text box...)
Spy++ reports this as an EDIT class, good so far!
so i use GetWindowText to try get the text from the text box.... empty string??
mmmmm so im stratching my head... i know ill test my code and use:
static extern int GetWindowTextLength(IntPtr hWnd)
this has got to work! i should get a length back now!! NOPE! nothing is coming back from ANY EDIT class field
HOWEVER if i use GetWindowText on anything else, Labels, Window Titles it works!!
What am i doing wrong here? Am i using the wrong API call to get data from an Edit Field?
its driving me mad!!! lol
|
|
|
|
|
wbjohnson wrote: this has got to work!
No, it doesn't! Just because the control derives from EDIT does NOT mean that you can use this, or any other method you want for getting the text out of the control. It will only work if the control responds to WM_GETTEXT, which not every EDIT control does.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
ah hah!!
that explains alot! thanks!
can i send the WM_GETTEXT command and then read the message buffer? assuming the control supports this command?
Cheers dude!
|
|
|
|
|
Yes. You might want to try these[^]. You might also want to look at the limitations of GetWindowText[^].
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
[DllImport("user32.dll")]<br />
public static extern int SendMessage(IntPtr hWnd, IntPtr Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPArray)] byte[] lParam);<br />
<br />
int __titleLength = SendMessage(hWnd, WM_GETTEXTLENGTH, IntPtr.Zero, null);<br />
<br />
byte[] __data = new byte[__titleLength];<br />
SendMessage(hWnd, WM_GETTEXT, new IntPtr(__data.Length), __data);<br />
<br />
foreach (byte __b in __data)<br />
Console.Write((char)__b);
this loks like its working!!!
|
|
|
|
|
Hi,
I am using/ or wanting to use the new application blocks. I am already using the DAAB, but would like to make use of the other blocks. I worked through the hands-on labs from Microsoft, but I don't understand the other blocks like the DAAB. I want to make use of the exception block, the logging block, and the caching block.
Can anyone advise please advise some good reading articles or tutorials that has helped you understand the application blocks a bit better.
I hope someone can help.
Regards,
ma se
|
|
|
|
|
The samples that come with the Enterprise Library seemed easy to understand to me. What are you having difficulties with? Provided you have the config file entries setup correctly this is about all there is to it.
<br />
try<br />
{<br />
LogEntry log = new LogEntry();<br />
log.Categories.Add("LogCategory");<br />
log.Message = "Tell what you want";<br />
log.Title = "I'm logging";<br />
<br />
Logger.Write(log);<br />
}<br />
catch(Exception ex)<br />
{<br />
if( ExceptionPolicy.HandleException(ex, "PolicyName") )<br />
throw ex;<br />
}<br />
only two letters away from being an asset
|
|
|
|
|
Hi,
Thanks for the reply.
WHat I am trying to do is to display a nicer error message if something goes wrong. This is how my code flow goes: .aspx page -> BLL class -> DAL class -> and then DAL class -> BLL class -> .aspx page. Now if something goes wrong in the DAL class, how do I get the error to display nicely to the user instead of that big yellow screen with the red and black text?? I thought of using the exception block for this would be the better way to go, not sure if I am right??
So you have used the January 2006 Enterprise Library alot?? I have only used the DAAB alot, I'll go and work through those hands on labs again the weekend.
Cheers
|
|
|
|
|
Any exception handling in your aspx pages could do this. The benfits of using the Enterprise Library blocks is that you can easily configure it to do more than just handle the exceptions, such as log the exception, ignore it, or wrap it in another exception, all with changes to your code.
only two letters away from being an asset
|
|
|
|
|
Hi all.
When I execute a simple sql command through my C# app, I get an error that says that an sql timeout has occured.
When I run the exact same command through query analizer it takes about 8 seconds to complete and returns all rows.
Does anyone have an idea why this happens. I have set the connection time out to 30 seconds and then to 60 seconds and I still recieve the same error.
Thanx in advance
He who laughs last is a bit on the slow side
|
|
|
|
|
I'm sure I'm not the best expert on this, but the first two things I would do are:
1) double check your connection string in the app
2) check out the resources that your app is using, potentially it could be hogging everything so that sql server runs more slowly and times out
hope those help or that someone else can give you the real low down
~A
|
|
|
|
|
Thanx for the reply, I know the connection is fine, when I step through it, it loads all the values into my dataset, then I loop through the dataset and populate a listview. The first time I run the app it will populate the listview with lets say 20 entries, the second time it will populate the list view with 80 entries.
The problem being that its with the exact same operation and I can't think that the app uses that much resources, or should I say I rather hope not.
Once again many thanx for the quick reply.
He who laughs last is a bit on the slow side
|
|
|
|
|
I will hazard a guess based on my experience of the exact same thing. here goes:
You have set the connection timeout in the connections string to 30 (or 60) seconds and not the Command timeout which is set on the relevant Command object.
|
|
|
|
|
J4amieC wrote: How to get answers to your questions[^]
I'm sorry if I posted this under the wrong discussion. Seeing as I thought it wasn't a sql problem I thought it might be a problem within my code.
I removed the timeout on the connection, but still recieve the timeout error.
I will look into the Command timeout.
J4amieC wrote: Command timeout which is set on the relevant Command object.
With that I asume you are talking about the sql command object, such as the select statement.?
Many thanx for the reply
He who laughs last is a bit on the slow side
|
|
|
|
|
The connection previously were created using sa, the sql system administrator.
I changed that to a different user to login into the database, and from there it all went wrong, can it be anything with that, the user I created also has all adminitrator rights. Unfortunatily I'm not much of a sql fundu, still have alot to learn.
He who laughs last is a bit on the slow side
|
|
|
|
|
I am struggling to get code for an application that can loads dll's and expose their controls.
I want to load a dll, and create multiple instances of that control on a panel.
At the moment I can create a button for each plugin dll. When I click it, it loads that control onto a panel. The problem is I can only create One instance of the control in that dll. Is there a way to create multiple instances of the controls contained in the dll?
Pieter Myburgh
|
|
|
|
|
That sounds like a problem with the plugin-interface.
There is no reason why the interface can't have a method "createNewInstance" which would .. well .. create a new instance of the control's class and return an id. You then could write the plugin in a way that the id is used to identify the control needing changes or updates.
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
Hi guys,
I am having a hard time working with transition on forms and I request your help. I have a configuration project where I go from one form to another getting user's settings. What I would like to do is when the user opens step1 and moves to step 2, it closes step one and if the user on Step2 clicks on back it opens step 1. Basically I would like to hide the forms on the next click and reshow the forms on the back click. Please help!!!!
sasa
|
|
|
|
|
That sounds like a bad idea. You will have to make sure that all the forms are the same size and appear in the same spot, or the user will get confused. For this kind of scenario (one form at a time), there is the TabControl you can use to fit multiple forms in one window. Then, you could add a button "next", which would switch to the next tab (maybe storing that forms data first) and a button for the "previous" step. With this functionality, the user could simply change between forms using either the tab control or the prev/next-buttons.
Trust me, forcing the user in a too tight set of constraints WILL upset him. After all, we are talking USER interfaces here. There is a reason this isn't called a "DEVELOPER interface".
|
|
|
|
|
Thank you Sebastian, I appreciate your suggestion. I like your idea and I think I will go with the tab control because that will reduce a lot of other work as well of hiding forms and reshowing forms with the previously entered data, etc.
Thanks!!!
sasa
|
|
|
|