Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 591
  • Last Modified:

File filter in managed Visual C++ .NET

I’ve been trying to apply in managed VC++.NET the file filter which I use in VB.NET and which works fine there, supposing that in Visual Studio .NET those filters should not be language specific. Thus, in the Properties of the openFileDialog of a VC++.NET form, in the section Filter, I type in:

Document Files(*.txt)|*.txt

But it doesn’t seem to filter out the .txt files when I open the dialog.

Aslo, I’d like to have the extension .txt automatically attached to the file name when I type it in the saveFileDialog. How is all this done in managed Visual C++ .NET?
0
judico
Asked:
judico
  • 6
  • 3
1 Solution
 
drichardsCommented:
This will show only text files and add a .txt extension if you type in a new file name without an extension.  The SaveFileDialog is identical.

    System::Windows::Forms::OpenFileDialog *ofd = new System::Windows::Forms::OpenFileDialog();
    // Set up default extension
    ofd->AddExtension = true;
    ofd->DefaultExt = S"txt";
    ofd->CheckFileExists = false;

    // Set up filter
    ofd->Filter = S"Document Files (*.txt)|*.txt";

    if ( ofd->ShowDialog() == System::Windows::Forms::DialogResult::OK )
    {
        System::Console::WriteLine(ofd->FileName);
    }
0
 
judicoAuthor Commented:
Thank you so much for the prompt answer. I had to comment out the following, however:

if ( ofd->ShowDialog() == System::Windows::Forms::DialogResult::OK )
    {
        System::Console::WriteLine(ofd->FileName);
    }

Is there any specific reason why it should be there?  Also, I 'm still puzzled why wouldn't filtering work in managed VC++ .NET when set through the Properties of the form? I'm just curious and it has no bearing on your excellent answer. I wonder if I should ignore these Properties that accompany the forms and should learn to do everything through code?


P.S. I increased your points to 250. Please let me know if you have problems in receiving the increased points.
0
 
drichardsCommented:
The 'if' statement is to test whether the dialog was cancelled or not - the test is true if the dialog was not cancelled.  The line inside the block was just a test line to print out the selected file name.

As for setting properties, I (almost) always code by hand, so I don't know why setting properties of the dialog would not work.  If I get some time I'll try it and see if it works.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
judicoAuthor Commented:
OK, thanks again ...
0
 
judicoAuthor Commented:
Since I don't see the ponts for answering this question increased I asked for increase in the Community Support:

http://www.experts-exchange.com/Community_Support/Q_21103692.html
0
 
judicoAuthor Commented:
Just, out of curiosity, how can one have other file types listed in the drop-down menu of the openFileDialog?
0
 
drichardsCommented:
The filter is a concatenation of string pairs where each string is separated by '|'.  So to get multiple filter selections, just keep adding:

    ofd->Filter = S"Document Files (*.txt)|*.txt|Word Files (*.doc)|*.doc";

will give you two selections - "Document Files (*.txt)" and "Word Files (*.doc)".  You could keep going and tack on "|Excel Files (*.xls)|*.xls", etc.  You can also do multiple extensions at once by using ';' as a separator in the extension part of the pair:

    ofd->Filter = S"Document Files (*.txt)|*.txt|Word Files (*.doc,*.zip)|*.doc;*zip";
0
 
judicoAuthor Commented:
Thanks a lot. I would appreciate it if you could take a look at:

http://www.experts-exchange.com/Hardware/Q_21102023.html

Thanks in advance.
0
 
judicoAuthor Commented:
Netminder,

Thank you ... I just increased the number of points ... Please let me know if there are other problems.

judico
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 6
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now