|
Hi
I am developing FTP Clinet application that downloads files from the specified server
i sent the LIST command and server returned a list of file names in following order:
-rw-r--r-- 1 devubas devubas 24 Sep 5 2008 .bash_logout
now the problem is how do i extract the filename fom above string for example just the .bash_logout.
Is there any way to just get the filename from FTP server by sending this command combined with other parameters.
Please help
|
|
|
|
|
Hi all, I am trying to populate a treeview from a webservice through a thread and get an invoke error when I call the function in the thread - outside the thread it works perfectly - but is too slow to be used outside a thread.
So wondered if there were anyone who have some experience on Invoking in treeviews?
my code is as follows:
private void ThreadingGroups()
{
Thread TsGroups = new Thread(ThreadGroups);
TsGroups.Start();
}
private void ThreadGroups()
{
DataTable dt = DOCTemp.GetGroups();
DataRow dr = dt.NewRow();
dr[0] = "";
dr[1] = "Default";
dt.Rows.InsertAt(dr, 0);
frmTemplateManager.treeView1.Nodes.Clear();
for (int i = 0; i < dt.Rows.Count; i++)
{
TemplateManagerTreeView(dt.Rows[i]["id"].ToString(), dt.Rows[i]["name"].ToString());
}
}
private void TemplateManagerTreeView(string id, string name)
{
frmTemplateManager.treeView1.Nodes.Add(id.ToString(), name.ToString());
}
The function is basically updating a treeview located in form named frmTemplateManager and it iself it works quite well. Just need to find a way to get the Invoke to work in a way..
Cheers,
modified on Sunday, October 25, 2009 3:17 AM
|
|
|
|
|
btw I did have a look at the article "Populating TreeView on a Background Thread" but didnt give me any clues on how i got out of my error.
|
|
|
|
|
As you have found out, you must always use a UI control on the main thread. So you will have to marshal the treeView1.Nodes.Add calls on to the main thread using Invoke or BeginInvoke .
What's taking the time - is it DOCTemp.GetGroups() or the loop round TemplateManagerTreeView ?
If it's the GetGroups call, then you can just marshal the whole loop in one go. If it's actually adding the nodes, you will have to split the loop up into chunks and marshal them one after the other. Invoking every TemplateManagerTreeView call individually would be slow.
Nick
----------------------------------
Be excellent to each other
|
|
|
|
|
Well it do take some time for the Webservice to finish. Especially when my server is located in California and some users will access this application in New Zealand - and that can be far, far, far away when im messing around with applications that don't play well with latency.
I am not asking you to do the code for me, but do you have some examples on how to marshal the loop when using the Invoke or BeginInvoke?
Cheers,
Ronni
|
|
|
|
|
This is an example for WinForms. WPF is similar, but uses the Dispatcher class.
private void UpdateTreeView( DataTable dt )
{
for ( int i = 0 ; i < dt.Rows.Count ; i++ )
{
TemplateManagerTreeView(dt.Rows[i]["id"].ToString(), dt.Rows[i]["name"].ToString());
}
}
Then in ThreadGroups() put:
frmTemplateManager.treeView1.Invoke( ( Action<DataTable> ) UpdateTreeView, dt );
Nick
----------------------------------
Be excellent to each other
|
|
|
|
|
Man, so simple and yet so beautiful...
Thanks buddy.
Btw. implemented it but found out that when running it in a thread it gets added trice. Running it outside the thread will only added to the treeview once as it should.
Been going over the code but couldnt really see anything that should trigger the thread 3 times, so wondered if that had something to do with the invoke function?
|
|
|
|
|
I would suggest you read this[^].
Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
|
|
|
|
|
Thanks!, will read it. Can see that the more I get to know about C#, the more I have to read up on. *Damn*.
|
|
|
|
|
How can i run the open and save file codes in C# ???
modified on Sunday, October 25, 2009 2:07 AM
|
|
|
|
|
Not sure what you want: is it "how do I use the open and save dialogs in c#"? If so, then look at OpenFileDialog[^] and SaveFileDialog[^]
If not, then we need more information.
No trees were harmed in the sending of this message; however, a significant number of electrons were slightly inconvenienced.
This message is made of fully recyclable Zeros and Ones
|
|
|
|
|
Hi
i want to display hierarchical data in treeView, for example i have a recursive query which get employees and his/her manager in northwind database like this :
WITH cte1 (LastName, EmployeeID, Manager, ManagerID, Level)
AS
(
SELECT e1.lastName, e1.employeeID, e2.LastName, e1.ReportsTo, 0
FROM Employees e1 LEFT JOIN employees e2 on e1.ReportsTo = e2.EmployeeID
WHERE e1.ReportsTo IS NULL
UNION ALL
SELECT e1.lastName, e1.employeeID, c.LastName, e1.ReportsTo, Level + 1
FROM Employees e1 JOIN cte1 c ON e1.ReportsTo = c.EmployeeID
)
SELECT * FROM cte1
now, i want to display this result set to treeview in hierarchical mode, but i don't know how to do this. can anybody provide source code ?
thanks
|
|
|
|
|
Consider the following...
struct Node
{
unsafe { public Node* parentNode; }
public int someData;
}
class SomeClass
{
Node[] nodeArray = new Node[2];
Node[] otherNodeArray = new Node[1];
void LinkEmUp()
{
unsafe
{
nodeArray[0].parentNode = &nodeArray[1];
otherNodeArray[0].parentNode = &nodeArray[0];
}
}
}
And to add, lets say that an instance of SomeClass has a Node array where an element's parentNode points to a Node in another SomeClass instance's array.
Would the pointer chain will be intact after a garbage collection or after the CLR does something to change the reference types memory locations? Is it even possible to make linked lists and reference/pointer chains with .NET value types?
EDIT:
I figured it out. In the example above, the consumer of SomeClass would have to use the fixed statement to fix SomeClass and the two Node arrays. The Node arrays would also have to be made public so that the consumer can directly access them.
class SomeClass
{
public Node[] nodeArray = new Node[2];
public Node[] otherNodeArray = new Node[1];
public void LinkEmUp()
{
unsafe
{
nodeArray[0].parentNode = &nodeArray[1];
otherNodeArray[0].parentNode = &nodeArray[0];
}
}
}
Consumer
unsafe static void Main()
{
SomeClass c = new SomeClass();
fixed(Node* _temp = &c.nodeArray[0], __temp = &c.otherNodeAray[0])
{
c.LinkEmUp();
...
}
}
As far as my question about linked lists with C style structs, its possible if I use native API or Marshaling to allocate memory.
Another way is stack based linked lists built through recursion which I don't understand how it could be of any use that way.
modified on Saturday, October 24, 2009 11:28 PM
|
|
|
|
|
CaptainSeeSharp wrote: Would the pointer chain will be intact after a garbage collection or after the CLR does something to change the reference types memory locations? Is it even possible to make linked lists and reference/pointer chains with .NET value types?
The problem you have is that it points to a memory address that has been GCed. I'm unsure how the pointer chain would stay intact as .NET moves things around in memory, but I am certain that, just like C++, once you clean up a node, your chain is broken.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
What I really want to know is if it is possible to create a linked list in .NET using a valuetype Node that uses a pointer to point to other valuetype Nodes. If it is possible, I would like to see a small example.
|
|
|
|
|
I would think that having a class and passing the instances ( which are by ref ) is all you need to create a linked list. So long as none of the nodes are deleted along the way.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
Who could have voted you down on this? Seems to be more pettiness floating around here of late. Anyway, 5'd to counter it.
only two letters away from being an asset
|
|
|
|
|
CSS downvoted me for answering by explaining a better design, because he was asking a .NET question in general, not actually trying to write a linked list. Oh, and because I was the one helping him, I bet that burned him up.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
Wow - I didn't even realise I was replying to you ( not that it would have changed my answer ). I get a one vote for helping you ? How does that work ?
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
I want to know if I can link Nodes of
struct Node
{
unsafe { public Node* parentNode; }
}
Would the chain hold together? I want to articulate what goes on behind the scenes in the CLR.
class SomeClass
{
Node[] nodeArray = new Node[2];
Node[] otherNodeArray = new Node[1];
void LinkEmUp()
{
unsafe
{
nodeArray[0].parentNode = &nodeArray[1];
otherNodeArray[0].parentNode = &nodeArray[0];
}
}
}
I don't want to here "just change Node to class and don't use pointers" because that is not what I am asking.
modified on Saturday, October 24, 2009 10:08 PM
|
|
|
|
|
CaptainSeeSharp wrote: I don't want to here "just change Node to class and don't use pointers" because that is not what I am asking.
I see you still can't spell.
You need to make clear if what you're saying is 'I know my design is stupid, but I'm trying to illustrate a point'. If you have a pointer to an object, and that object is GCed, then your pointer is as valid as a pointer to a deleted object in C++.
Christian Graus
Driven to the arms of OSX by Vista.
Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
|
|
|
|
|
|
I need to be able to place the captcha image into a picturebox on my form, the reason being that I need to zoom the captcha image for the visualy impaired users.
It appears to be such a simple task, just take the image from the web page and put it into a picturebox but it is turning out to be not so simple.
i have WebBrowser control in form and for registration in one of site, i need captcha image in picture box. problem is that captcha image is generated by JavaScript, when java script runs then it gives url of captcha image. but every time when java script runs, captcha image goes change. i just want that captcha image which is on WebBrowser control current page.
Any help would be greatly appreciated.
yogesh
|
|
|
|
|
No you cant create pictures using Javascript. You need to generate the picture in the serverside using Bitmap object.
This might help you
CAPTCHA Image[^]
|
|
|
|
|
i dont want to create captcha using javascript. i just told that captcha link comes when javascript runs.
yogesh
modified on Saturday, October 24, 2009 1:49 PM
|
|
|
|