|
Whoops! My bad! I forgot about alternate streams. I haven't used them at all , but have read about the concepts on MSDN somewhere about 5 years ago.
RageInTheMachine9532
|
|
|
|
|
Hi,
I think i'm going mad .....
All i need to do is convert a DOS style 8.3 file name to the full expanded format name ... but i'm damned if i can find a way to do it.
I think i can do anything to a file apart from this.... please help ... preserve my sanity.
Thanks ... Andy
|
|
|
|
|
If the .NET Framework doesn't support this you can P/Invoke either GetLongPathName or GetFullPathName .
- Nick Parker My Blog
|
|
|
|
|
Thanks Nick...
Just for anyones interest the code looks something like ....
Declare the routine like this ...
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
public static extern long GetLongPathName(StringBuilder ShortFileName, StringBuilder LongFileName, int Length);
StringBuilder shortName = new StringBuilder(filename);
StringBuilder longName = new StringBuilder(512);
long bufLength = longName.Capacity;
long retCode = GetLongPathName(shortName, longName, bufLength);
|
|
|
|
|
Hi...im trying to do password checking for multiple users...
the problem is that i get a runtime error saying the specified cast is invalid(line 272) ...i've check that im getting a string...so what could the problem be
<br />
private void btnOK_Click(object sender, System.EventArgs e)<br />
{<br />
dataSetPWD.Clear(); <br />
<br />
if(txtPassword.Text.Length > 10 && txtPassword.Text != "")<br />
{<br />
MessageBox.Show("The password textbox should contain more than 1 character and less than 10 characters. Please check your password.","Information");<br />
<br />
}<br />
else<br />
{<br />
try<br />
{<br />
oleDbConnection1.Open();<br />
<br />
oleDbDataAdapter1.SelectCommand.CommandText = "SELECT UserType FROM Password WHERE UserName = '"+txtUsername.Text+"' AND Password = '"+txtPassword.Text+"'";<br />
<br />
<br />
oleDbDataAdapter1.Fill(dataSetPWD);<br />
<br />
System.Data.DataTable Password = dataSetPWD.Tables[0];<br />
<br />
if(Password.Rows.Count != 0)<br />
{ <br />
<br />
string s = (string) Password.Rows[0][0]; --> LINE 272<br />
s.Trim();<br />
s.ToString();<br />
<br />
<br />
if(s.Equals("reception"))<br />
{<br />
frmReception rm = new frmReception();<br />
rm.Show();<br />
}<br />
else if(s.Equals("doctor"))<br />
{<br />
frmDiagnosis dm = new frmDiagnosis();<br />
dm.Show();<br />
}<br />
else if(s.Equals("pharmacy"))<br />
{<br />
frmPharMenu pm = new frmPharMenu();<br />
pm.Show();<br />
}<br />
<br />
else <br />
{<br />
MessageBox.Show("Invalid Password or User Name. Please check your user name and password. It is case sensitive","Invalid Entry");<br />
<br />
}<br />
}<br />
else<br />
{<br />
MessageBox.Show("No Such Record");<br />
}<br />
}<br />
catch (Exception ErrorPassword)<br />
{<br />
MessageBox.Show(ErrorPassword.ToString(),"Password Error");<br />
}<br />
finally<br />
{<br />
oleDbConnection1.Close();<br />
oleDbConnection1.Dispose();<br />
}<br />
}<br />
<br />
}<br />
CODER
|
|
|
|
|
You could use .ToString() instead of (string) to see what you actually get.
Could it be that Column[0] isn't the user type you expect? I think it would be more robust and easier to read if you used Password.Rows["UserType"][0] (or whatever your column's name is)...
BTW, the first if clause is wrong . It won't get passwords that are too short. You should change && for ||.
Regards,
mav
|
|
|
|
|
I'm having a little problem with PramodKumarSingh mail problem.
In the constructor POP3(string UserName,string Password,string Server,bool DelAfterRead) I set the DelAfterReader = true, but the messages still stay in pop3 server and I can download them in my Outlook. Any help would be great.
Thanks,
Agus
|
|
|
|
|
This question belongs in the message board for that article since it's specific to the content and sample code of that article.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
how do i tell if my filestream is at the end of the file
char[] holder=new char[256];
FileStream fs=new FileStream("c:\\temp.txt",FileAccessmode.Read)
while ()//don know what to put there
{
fs.read(holder,0,256)
}
thanks
chad
|
|
|
|
|
while (fs.Position < fs.Length)
for instance.
--
Henrik Stuart (http://www.unprompted.com/hstuart/)
|
|
|
|
|
while (fs.read(holder,0,256) > 0)
{
}
|
|
|
|
|
|
FileStream.Read will return 0 when it gets to the end of the stream so you should test for the return value being > 0 and exit the loop on it being == 0 .
James
|
|
|
|
|
You can do it in loop and out of loop by checking to see if Stream.Length is equal to Stream.Position or checking the return value of Stream.Read/Byte for 0.
|
|
|
|
|
While installing Roman Kiss Remoting Management Console tool[^], I get the following error.
Exception occurred while initializing the installation:
System.IO.FileNotFoundException: File or assembly name Remote, or one of its dependencies, was not found.
What could be the problem?
I got .NET 1.1 and Windows XP Pro.
TIA
Promise only what you can do. And then deliver more than what you promised. This signature was created by "Code Project Quoter".
|
|
|
|
|
The proper place to ask about this is in the article's message forum. It's specific to that article and sample code. BTW - this isn't a remoting problem. The exception just states that the assembly Remote.dll - or one of its dependencies - cannot be found.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Heath Stewart wrote:
The proper place to ask about this is in the article's message forum.
I thought of posting there, but given the article date it will be awhile before I get the reply.
Heath Stewart wrote:
The exception just states that the assembly Remote.dll - or one of its dependencies - cannot be found.
You mean I have to install 'Remoting' separately? Isn't that part of .NET Framework install or VS.NET install?
Promise only what you can do. And then deliver more than what you promised. This signature was created by "Code Project Quoter".
|
|
|
|
|
The date on the article has nothing to do with messages! Notification emails are automatically send to article authors when you post a new message, just like they are by default to messages here in the forums.
.NET Remoting is part of the .NET Framework base class libraries, but Remoting.dll is some other assembly (not from the .NET Framework) that is missing. This could be an assembly containing the shared interfaces or any other Types used by the application.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Heath Stewart wrote:
This could be an assembly containing the shared interfaces or any other Types used by the application.
Got it. Thanks for the clarification. I thought it's related to .NET Framework Remoting.
BTW, I posted the question at Roman's article.
Promise only what you can do. And then deliver more than what you promised. This signature was created by "Code Project Quoter".
|
|
|
|
|
You might be running into the problem outlined here[^].
---------------------------
He who knows that enough is enough will always
have enough.
-Lao Tsu
|
|
|
|
|
Hi,
I'm creating a control very similar to the ListView in Details mode. I'm confused as to how to go about drawing the column headers at the top.
As the column headers are static and stay in one position (hence, they do not need to be scrolled by the system when the AutoScrollPosition is changed), I do not want to draw them each time the control needs to be repainted or the user scrolls down.
The only way I can think of to do this right now is to create a top-docked panel and use this panel to draw the columns on. However, I'd like to stay away from using any controls and write this control from scratch.
Any ideas?
Thanks!
Yaron
|
|
|
|
|
You're assuming you need to repaint everything each time something is invalidated. If you look at the PaintEventArgs , you'll notice that it gives the invalidated region that needs repainting. Back when memory and CPU clock speeds were expensive, this invalidate region was paid more attention. Use it to your advantage.
Sure, you could dock a control and paint that separately, but you just increase the memory requirements and degrade performance by unnecessary processing required for a whole separate control.
Even the List-View common control (which the .NET ListView control encapsulates) paints things separately, from columns to items to sub-items, depending on what has been invalidated. This also is what gives developers control to override certain aspects of painting for specific "items".
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi Heath,
Thx for the response! But, I still have problems with this...
I know about the invalidated region, but this is exactly what I'm worried about... For example, imagine the user scrolls down (assuming there are enough items). When he scrolls, the invalidated region is probably going to look something like {X=0, Y=300, <control_width>, <control_height -="" 300="">}, since windows will simply move whatever has already been painted up, and ask to draw just the part on the bottom that needs to be drawn. However, if my columns are simply drawn normally, it will scroll the columns up too! If this is the case, that means I need to step outside of the invalidated region (since the columns are all the way at the top, whereas windows wants to draw at the bottom), make a new Graphics object, and draw the columns OVER whatever is now at the top.
Isn't there any way to get around this?
Thx for all the help!
Yaron
|
|
|
|
|
The column headers shouldn't be part of the scrollable region. While the scroll bar control may overlap the column headers, the scrollable region is still the portion under the headers.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
How would I specify that the column headers aren't scrollable? Since it's not a control, I'm just painting them, so how would I tell windows not to scroll it along with the rest of the control?
Yaron
|
|
|
|