|
searched google did not find the solution. Please Help!
|
|
|
|
|
This code has been giving me some trouble for a while now.
When the Sub is called, the Boolean showFiles is initially passed as False.
However, the first time the Sub is called recursively, showFiles is changed to True.
<code>
Sub DisplayDirTree(ByVal dir As String, ByVal showFiles As Boolean, Optional ByVal level As Integer = 0)
' DisplayDirTree runs through the directory and lists each folder and file in order with indentation.
' showFiles is boolean and allows the caller to show folders & files, or just the folders.
' level is an optional parameter and is used only to set the begining indent.
' TODO: This is a recursive call, fix it.
'Create a string, set it as a Short Date so we just get mm/dd/yyyy
'Since it is a String and not a date, we must run .ToString
'Then we use .Replace("/", "_") so we get mm_dd_yyyy which is a valid windows filename
Dim dt As String = Date.Today.ToShortDateString.ToString.Replace("/", "_")
Dim newFilename As String = "c:\Backup\Logs\" + dt + ".txt"
Dim st1 As Stream = File.Open(newFilename, FileMode.Append, FileAccess.Write, FileShare.ReadWrite)
Dim sw1 As New StreamWriter(st1)
sw1.WriteLine(New String("-"c, level * 2) & dir)
Try
If showFiles Then
For Each fname As String In Directory.GetFiles(dir)
sw1.WriteLine(New String(" "c, level * 2 + 2) & fname)
Next
End If
For Each subdir As String In Directory.GetDirectories(dir)
DisplayDirTree(subdir, showFiles, level + 1)
Next
Catch ex As Exception
Console.WriteLine(ex.Message)
sw1.WriteLine((ex.Message) & (ControlChars.CrLf))
End Try
sw1.Close()
End Sub
</code>
I am rewriting all the code in this program, but that one boolean has me stuck.
The calling code is DisplayDirTree(rootDir, False)
The only thing I can think of is that when passing showFiles, it for some reason defaults to True.
Is this natural behaviour, or am I missing something?
|
|
|
|
|
I don't see the problem where the showFiles boolean should be true at start or where it can be changing.
What you can do (not totally sure, but at least you can try)
change
Sub DisplayDirTree(ByVal dir As String, ByVal showFiles As Boolean, Optional ByVal level As Integer = 0)
to
Private Sub DisplayDirTree(ByVal dir As String, Optional ByVal showFiles As Boolean = False, Optional ByVal level As Integer = 0)
So, make it private, and make the showFiles Optional to False.
Let us know what it does.
another thing you can do is set a break on the beginning of the sub and Watch the variable showFiles, is it set the way you want it, and while you step through your code, does it got changed?
|
|
|
|
|
Hello,
As the title suggests, I've got a problem with a disappearing horizontal scrollbar on a ListBox where I'm using the DrawItem event. DrawItem is set to OwnerDrawFixed. I'm using VB.NET 2008 Express.
I think I know WHY I'm not seeing the scrollbar, but I can't figure out how to fix it. I may have to use a DataGridView, but I'd prefer to understand the solution to the ListBox problem.
What I think is happening is this line is filling my rectangle with my brush to the boundary of the rectangle:
e.Graphics.FillRectangle(myBrush, e.Bounds)
The line is filling the rectangle with my data:
e.Graphics.DrawString(Me.lstReportContent.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))
I've seen that I can reduce e.Bounds.Width, and each line is cut short. Naturally, I'd have thought that if I increase e.Bounds.Width, the item line would be longer than the visible rectangle width.
|
|
|
|
|
Have you solved this?
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
|
|
|
|
|
Hi,
How can i give the end-users the possibility to freely drag and drop windows to re-arrange to their preferred layout at run time?
Making forms and other controls dockable and floating.
Any examples are really appreciated.
Thanks in advance!
modified on Thursday, March 13, 2008 6:43 AM
|
|
|
|
|
Hi all,
I have written a code where in VB.NET that iterates a data table. If a certain condition is met in the inner loop, the inner loop must break and the control must be transfered back to the outer loop. I tried the following...
For l As Integer = 0 To deleteditems.Count - 1<br />
Dim selectedrow As String = deleteditems.Item(l).ToString<br />
For j As Integer = 0 To tableinstance.Rows.Count - 1<br />
If tableinstance.Rows(j).Item(0).ToString() = selectedrow Then<br />
tableinstance.Rows(j).Delete()<br />
Exit For<br />
End If<br />
Next<br />
Next
The problem is that the "exit for" not only exits the inner loop , but also the outer loop... any help would be appreciated...
When you fail to plan, you are planning to fail.
|
|
|
|
|
please neglect....I was my mistake since deleteditems.Count was =1
When you fail to plan, you are planning to fail.
|
|
|
|
|
Dear,
I am trying to give you some sample. If you take one FOR and While loop it works fine.
You can test this sample.
Dim a(,) As Integer = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
Dim s As String = ""
For i As Integer = 0 To a.GetUpperBound(0)
Dim j As Integer = 0
While j <= a.GetUpperBound(1)
If a(i, j) = 2 Then
Exit While
End If
s &= a(i, j) & " "
j += 1
End While
s &= vbCrLf
Next
MsgBox(s)
If it solves the problem, then confirm. We can't do anything if we use same types of loops.
Thanks and Regards,
Ashok
|
|
|
|
|
AKPatra wrote: We can't do anything if we use same types of loops.
Are you sure?? Have you checked it?
|
|
|
|
|
I have checked it with For loop using Exit For with it. But I have not checked for everything. Can you provide me any examples regading this
|
|
|
|
|
AKPatra wrote: I have checked it with For loop using Exit For with it. But I have not checked for everything. Can you provide me any examples regading this
Just put in another For loop within the first and check it out...
|
|
|
|
|
You are right. Actually I was giving incorrect conditions with the Loop.
|
|
|
|
|
Dear All,
I have developed an Windows Application in VB.Net. This application user some other DLLs for its execution. When I use it on my machine which has the DLLs it gives no problem. But when I transfer only the EXE file of the application and try to exceute there it gives exception as the DLL is not present. So, my question is how can I create the windows Exe file which will combine all the required DLLs for its use. I am not interested in creating and Installer or use Packaging Project. This application has to be designed as a simple EXE (ony one file) file which I can transfer to any machine and perform the work there. Of course the targetr machines have .Net Framework installed.
Please try to provide some solution, if possible with some code example.
Thanks in Advance.
Ashok
|
|
|
|
|
Copy all the code out of your dlls into your main project. That's your only option.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
All the DLLs are already present in the same directory.
|
|
|
|
|
I'm sorry. I guess you didn't read what I said. If you want to distribute the exe without the dlls, you need to take the code out of the dlls, put it in your main project, and build an exe where the code is all inside the exe, instead of in dlls.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Thank you for your suggestion. But this is not possible as I don't have the code with me, just the DLLs.
Is it possible now?
|
|
|
|
|
Your problem just like me, but maybe you can try use Ilmerge GUI or Xenocode2007, but if you use ILmerge GUI (surf to the internet), the other PC must have framework that same with your project.
|
|
|
|
|
Have you tried with ILmerge GUI ? The other machine has the framework, that is not a problem.
OK, I will search for this tool now.
|
|
|
|
|
Dear,
It worked for me. Thanks a lot.
|
|
|
|
|
Hello,
1. I create a DLL in VB.NET. This dll (and all the other I will create in the future) is located on a net server (Novell).
2. I had created a program that use this dll.
3. The program is installed on 10 different computers.
I would like that my program will use the dll installed on the net not the dll installed on the local pc.
The cause is if I am upgrading my dll I don't want:
a. Prepare a new setup for the application.
b. Run setup again in each one of the computers.
How can I do this?
Please help, thanks
Shay Noy
|
|
|
|
|
The way to do this that isn't insane, is to dynamically load the dll locally and jsut write code that checks the server for a new version and installs it if it exists.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
If I understood right, I should write a small application that running on each one of the local computers and check for new version of dll and if there are new version of dll I have to copy them to the local client pc?
If yes, this is a big project because we have a lot of application and a lot of dll and a lot of computers in our factory.
I thought that instead of using the dll from Local pc, the program will use the dll from its location on the net. And after upgrading it, the program will use thi last upgrade one. Can it be done in this way?
Shay Noy
|
|
|
|
|
shaynoy wrote: Can it be done in this way?
No, you can't. Apart from any other considerations, you want one PC to run all the code for all the computers in your factory ?
It's really not much work at all. It's boilerplate code, you write it once and reuse. Hell, just deploy with clickonce and set it for automatic updates.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|