( Index )
Month

Brief Information about the Jan 2012 CSIG Meeting

Members Meeting - Review Windows Programming, etc.

Welcome to the CSIG, a Special Interest Group of the ACGNJ. The meeting this month will be a general programming review. We will discuss last years programming and how programs are created. The general state of C++ programming and other topics will also be discussed.

History  

The majority of my programs start with an idea or algorithm. Often the algorithm has to be tested and debugged. Because of this it is often best to create a CONSOLE APPLICATION in order to test an idea. Once the idea is proven, it can be converted to a WINDOWS APP.

Letter Reprinted from the Microsoft Programming Forum

Forum


The full discussion can be seen at http://social.msdn.microsoft.com/Forums/nl/csharpgeneral/thread/34a228c4-7f6f-4ba2-8288-6f2e71de8000

The above forum describes a number of references and reference books. They are all good. For those wishing detailed knowledge of Windows Software Development, Microsoft provides a free kit called

Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1.

Available here: http://www.microsoft.com/download/en/details.aspx?id=3138

This is a free DVD that includes the following:

Windows SDK and .NET Framwork 3.5
Samples are in csharp but generally can be converted to c++. There is some overlap with
the documentation that comes with C++ Visual Studio or C++ Visual Studio Express but
having both references is valuable. Programs for this CSIG normally use the .NET CLR
features of the language as provided by Microsoft.

General Section including Random Access

The beginning subject for this month is a general review and random access program where anyone can introduce a subject or ask a question about programming.

This is an exciting time for the C Language programming since Microsoft now has 4 different language compilers: C++, C++ Express, C-Sharp, and C-Sharp Express. These are all capable of creating Windows (tm) programs and some are free !

Microsoft is now advertising it's newest versions designated Visual Studio 2010. Version 2008 is also still available for download. Some free versions require registration at Microsoft. Some versions are more deluxe but have demo timeouts. There are "Express" versions otherwise know as "Free" as well as the commercial versions. The Express versions are fully functional. Unless you work in a large program development company, you probably won't need the broader features of the commercial versions. Additionally, there are other companies making free and almost free compilers. Here's a link with many compilers: http://www.willus.com/ccomp.shtml
(See below for other language and tutorial links.)


The following PDF files contain more detailed information about the C and C++ language as well as an extensive list of web sites showing free programs and tutorials for both Windows (tm) and Linux.


The beginning of the evening (starting at 7:30pm) will be a RANDOM ACCESS discussion. The main presentation will follow.

Our download site has code and programs from most of our meetings. ( Source Code Files )

Sample Code

    //
    // PROCESS BUTTON HIT
    //
    private: System::Void ProcessButton_Click(System::Object^  sender, System::EventArgs^  e) 
              {  if (String::IsNullOrEmpty(this->SourceFilename->Text))
                     return;

                 if (File::Exists(this->OutputFilename) &&
                        (System::Windows::Forms::DialogResult::No == 
                        MessageBox::Show(
                        "The TXT output file already exists. Overwrite?", "ATTENTION",
                        MessageBoxButtons::YesNo
                            )))
                    return;

                 // Open output file
                 sw = gcnew StreamWriter(OutputFilename);

                 Process(SourceFilename->Text);

                 // Close output file
                 sw->Close();
                 ViewTextfile->Enabled = true;
             }

    //
    // VIEW TEXT FILE BUTTON HIT
    //
    private: System::Void ViewTextfile_Click(System::Object^  sender, System::EventArgs^  e) {
             if ( (!String::IsNullOrEmpty(this->OutputFilename)) &&
                 File::Exists(this->OutputFilename)) 
                     System::Diagnostics::Process::Start(OutputFilename);
                        ViewTextfile->Enabled = false;
                        ProcessButton->Enabled = false;
         }



    //
    // PROCESS ROUTINE 
    //
    private: int Process(String ^ inputFilename)
    {
        StatusLine->Text = "Processing " + inputFilename;

        if (! File::Exists(inputFilename)) 
        {
            StatusLine->Text = String::Format(
                            "{0} does not exist.", Path::GetFullPath(inputFilename));
            return 1;
        }
        StreamReader ^sr = File::OpenText(inputFilename);
        String ^input = sr->ReadToEnd();
        sr->Close();

                // 
                // Begin search and replace
                //


    sw->WriteLine("<!-- ************************************************* -->");
    sw->WriteLine("<!-- Processed through CLEANUP1  Ver. 1.xx by B.Arnold -->");
    sw->WriteLine("<!-- ************************************************* -->");

    input = input->Replace(     "<A ",                    "<a ");
    input = input->Replace(     "</A>",                    "</a>");
    input = input->Replace(     "<B>",                    "<b>");
    input = input->Replace(     "</B>",                    "</b>");
    input = input->Replace(     "<BR>",                    "<br>");
    input = input->Replace(     "<br>",                    "<br />");  // for XHTML
    input = input->Replace(     "<P>",                    "<p>");
    input = input->Replace(     "<P ",                    "<p ");
    input = input->Replace(     "</P>",                    "</p>");
    input = input->Replace(     "<U>",                    "<u>");
    input = input->Replace(     "</U>",                    "</u>");
    input = input->Replace(     "<H",                    "<h");
    input = input->Replace(     "</H",                    "</h");
    input = input->Replace(     "<TD ",                    "<td ");
    input = input->Replace(     "<TR>",                    "<tr>");
    input = input->Replace(     "</TD>",                "</td>");
    input = input->Replace(     "</TR>",                "</tr>");
    input = input->Replace(     "<DIV ",                "<div ");

"Random Access" questions start at 7:30 Tuesday night.

SOURCE CODE

Source Code Files

For help, email me at b a r n o l d @ i e e e . o r g
Back to C++ Main Page