|
Hi all,
I do:
CFileDialog fd(TRUE, NULL, percorso, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
fd.m_pOFN->lpstrTitle = "Dialog Title";
Now i need a CFileDialog that shows only .txt files.
I also need another CFileDialog which i use to save a file
in which the "file type" field is .txt
How can i do that ?
Thanx in advance,
Desmo16.
|
|
|
|
|
Look up how to construct Filters for the common file dialog. The docs for CFileDialog is a good place to start.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
set the extensions filter to "Text files (*.txt)|*.txt||"
|
|
|
|
|
i tried with
CFileDialog fd(TRUE, NULL, percorso, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
fd.m_pOFN->lpstrTitle = "load file";
fd.m_pOFN->lpstrDefExt = "txt";
and also with
CFileDialog fd(TRUE, NULL, percorso, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
fd.m_pOFN->lpstrTitle = "load file";
fd.SetDefExt("txt");
but it doesn't work.
Where should i search in the doc exactly ?
|
|
|
|
|
not what i told you to do.
i said assign the string "Text files (*.txt)|*.txt||" into the filter member of the CFileDialog...
(see the 5th parameter of the constructor)
|
|
|
|
|
You are right, now i wrote:
CFileDialog fd(TRUE, NULL, "*.txt", OFN_FILEMUSTEXIST | OFN_HIDEREADONLY);
fd.m_pOFN->lpstrTitle = "Carica file di osservazioni";
fd.m_pOFN->lpstrFilter = "Text files (*.txt)";
and it works great ! Thanx !
|
|
|
|
|
yes, i modified my previous post ; you could also have done this using the 5th parameter of the constructor...
also, don't hesitate to read the MSDN[^]. it's there for you !
|
|
|
|
|
The CFileDialog has on the bottom-right
corner a button labeled as "open".
How can i change the label into "save" ?
Thanx in advance,
Desmo16.
|
|
|
|
|
i am facing a problem with the socket class in win32. when trying to link windows and unix machines in win32 the unix machine not get the information as the sockets was closed for the threads which are finished .the recieving end just waits for all the threads to finish and only after all the threads finish the sockets was considered closed. is the socket class is blocking or non blocking type.
vineesh
|
|
|
|
|
Sounds like a problem with SO_LINGER. I do not think that has anything to do with blocking or non-blocking sockets.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
Maybe this will help. From the SDK...
To assure that all data is sent and received on a connected socket before it is closed, an
application should use shutdown to close connection before calling closesocket. For example, to
initiate a graceful disconnect:
Call WSAAsyncSelect to register for FD_CLOSE notification.
Call shutdown with how=SD_SEND.
When FD_CLOSE received, call recv until zero returned, or SOCKET_ERROR.
Call closesocket.
Note The shutdown function does not block regardless of the SO_LINGER setting on the socket.
|
|
|
|
|
hi,
iam using the shut down there but it doesnt help. i want to send a successful packet before closing the socket . it was sent but after this point was the problem . if it was single thread it works properly .but when parrelel threads are there . it still makes problems.
vineesh
|
|
|
|
|
vinucv wrote: but when parrelel threads are there . it still makes problems
What is going on in these threads? As far as I know, sending from simultaneous threads is not
a good idea without synchronization. This may not be the case but I've never found documentation
that Windows Sockets is thread safe.
Are you destroying a thread while it's blocked on send()?
Are you closing the socket on one thread while another thread is blocked on send()?
The socket will be in blocking mode unless you've called WSAAsyncSelect or WSAEventSelect (this
could be different if you are using MFC socket classes).
|
|
|
|
|
Mark Salsbery wrote: As far as I know, sending from simultaneous threads is not
a good idea without synchronization.
Perhaps vinucv should be getting his fish filet from McDonalds
led mike
|
|
|
|
|
!!!
|
|
|
|
|
the actual purpose of the code is a remote execution of programs.
i am trying to shedule windows programs in unix machines .
the failure case is only one
*)
suppose i am scheduling four parellel programs(PG1,PG2,PG3,PG4) .after the completion of first program (e PG1)i have to fire another program (PG5)
and only after the completion of all the parellel programs (PG1--PG4) another program PG6 has to be fired.All these programs are windows programs residing in windows machines.only the sheduling is done at the unix machine.
windows machines contains some agent programs for this and they are multithreaded. they send the details to unix serverand if program exists sends an exit status .this status should be read by unix machine and update the status in schedule.
suppose pg1 finishes first it will fire the program pg5 right?\
but it will not update the stauts to finish since the socket for the particular thread was not read as closed at unix .hence it has to wait for all the threads to finish and only after the programs pg1-pg4 are finishes
pg5 and pg6 are fired .
iam synchronized the threads and tried shutdowm with WSAAsyncSelect but all doesnt help.
vineesh
|
|
|
|
|
vinucv wrote: but it will not update the stauts to finish since the socket for the particular thread was not read as closed at unix
Is that the only way the unix side knows - by waiting for the socket to close?
Could you wait for the process to end on the Win32 side and send a message to the unix side
instead?
|
|
|
|
|
iam sending an exit status to unix machine it will read this and should update the status . but it willl still waiting for signals from the socket
and when the final thread finishes. it find the socket closed and then update .
even i totally confused....
vineesh
|
|
|
|
|
vinucv wrote: ...but it willl still waiting for signals from the socket...
What kind of signals?
If you have no control over the unix side then I can't think of anything you could do.
I mean, if the unix side does nothing until the socket is closed then how else can you notify the
unix side except by closing the socket?
|
|
|
|
|
vinucv wrote: and tried shutdowm with WSAAsyncSelect
what are you talking about, to shut down a socket you use shutdown[^]?
led mike
|
|
|
|
|
in order to initiate a graceful disconnect:
i
Call WSAAsyncSelect to register for FD_CLOSE notification.
Call shutdown with how=SD_SEND.
When FD_CLOSE received, call recv until zero returned, or SOCKET_ERROR.
Call closesocket.
the socket was closed while testing but the unix machine doent notice it untill all the threads finished and close their sockets .
vineesh
|
|
|
|
|
As an experiment try this
call shutdown with SD_BOTH
call close
led mike
|
|
|
|
|
led mike wrote: As an experiment try this...
And then we'll all meet at McDonalds!!
|
|
|
|
|
And bring plenty of life vests for those that might need them!
led mike
|
|
|
|
|