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: 154
  • Last Modified:

Creating a text file containing no control characters?

I need to create a text file in VC++ .NET containing plain numbers with no control characters which can be read with, say, the Notepad (the way text (not binary) files are created in, say, VB.NET). It appears that all examples given in a book such as Deitel’s “Visual C++ .NET. How to Program” create files which contain control characters and encrypt the data. Is that it? Isn’t there a way to create plain and simple text files in VC++ .NET containing no additional characters that can be viewed by common text editors?
0
judico
Asked:
judico
  • 3
  • 2
1 Solution
 
nonubikCommented:
HANDLE      hFile = CreateFile(m_strFileName, GENERIC_READ, 0, 0, CREATE_NEW, FILE_ATTRIBUTE_HIDDEN, 0);
if (hFile == INVALID_HANDLE_VALUE)
{
      OutputDebugString(_T("\nError creating file"));
            
}      
else
{      
                TCHAR      szLine[] = _T("Some text here");
      DWORD      dwBytes;
                WriteFile(hFile, szLine, sizeof(szLine), &dwBytes, 0);
      CloseHandle(hFile);
{
0
 
judicoAuthor Commented:
I am having problems implementing above code in managed environment (when trying to use forms). Also, what is the corresponding code for reading the created text file? I would appreciate it very much if you could post a working example using forms in VC++ .NET. Thank you in advance.
0
 
judicoAuthor Commented:
I found a link that seems to solve the problem:

http://support.microsoft.com/default.aspx?scid=kb;%5BLN%5D;307398&product=vcNET#1

There were several typos to be corrected, otherwise it works fine. Now the problems with OpenFileDialog and SaveFileDialog remain to be solved. To start, how can one change the directory in which the file is written in the code:

StreamWriter* pwriter = new StreamWriter( S"\\KBTest.txt" );   ?
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
nonubikCommented:
StreamWriter* pwriter = new StreamWriter( S"c:\\My_Directory\\KBTest.txt" );  
0
 
judicoAuthor Commented:
This is what I needed:

//This demonstrates how to READ a text file:
      private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
                   {
// Use try...catch to deal with a 0 byte file or a non-existent file.
listBox1->Items->Clear();

try  
{    
      
OpenFileDialog *fileChooser = new OpenFileDialog();
Windows::Forms::DialogResult result = fileChooser->ShowDialog();

// name of file containing data
String *fileName;

// exit event handler if user clicked Cancel
if ( result == DialogResult::Cancel )
     return;

// get specified file name
fileName = fileChooser->FileName;

// show error if user specifies invalid data
if ( ( fileName->Equals( S"" ) ) )
MessageBox::Show( S"Invalid File Name", S"Error",
                         MessageBoxButtons::OK, MessageBoxIcon::Error );

else {

       String* textFile = String::Concat( fileName );
             
     }

      StreamReader *reader = new  StreamReader(fileName);
      do
      {
      listBox1->Items->Add(reader->ReadLine());
      }  
      while(reader->Peek() != -1);
}    
catch(FileNotFoundException *ex)
{
      listBox1->Items->Add(ex);
}  
       
catch (System::Exception *e)
{
      listBox1->Items->Add(e);
}

                   }




 // This demonstrates how to create and to WRITE to a text file.
private: System::Void button2_Click(System::Object *  sender, System::EventArgs *  e)
             {

SaveFileDialog *fileChooser = new SaveFileDialog();
Windows::Forms::DialogResult result = fileChooser->ShowDialog();

String *fileName;

fileChooser->CheckFileExists = false;

if ( result == DialogResult::Cancel )
     return;

fileName = fileChooser->FileName;

if ( ( fileName->Equals( S"" ) ) )
MessageBox::Show( S"Invalid File Name", S"Error",
                         MessageBoxButtons::OK, MessageBoxIcon::Error );

else {
StreamWriter* pwriter = new StreamWriter( fileName );
pwriter->WriteLine( S"The file was created by using the StreamWriter class." );
pwriter->Close();

listBox1->Items->Clear();
String *filew = new String(S"File written to C:\efi\KBTest.txt");
listBox1->Items->Add(filew);

}

Now, the next step is to find out how to place the two columns of numbers in my text file in two separate arrays which I want to use later in the program.

0
 
CetusMODCommented:
Closed, 50 points refunded.
CetusMOD
Community Support Moderator
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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