SysUtilsFileOpen (C++)

From RAD Studio Code Examples
Jump to: navigation, search

Description

The following example uses a button, a string grid, and an Open dialog box on a form. When the button is clicked, you are prompted for a file name. When you click OK, the specified file is opened, read into a buffer, and closed. Then the buffer is displayed in two columns of the string grid. The first column contains the character values in the buffer. The second column contains the numeric values of the characters in the buffer.


Code

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  int iFileHandle;
  int iFileLength;
  int iBytesRead;
  char *pszBuffer;
  if (OpenDialog1->Execute())
  {
	try
	{
	  iFileHandle = FileOpen(OpenDialog1->FileName, fmOpenRead);
      iFileLength = FileSeek(iFileHandle,0,2);
	  FileSeek(iFileHandle,0,0);
	  pszBuffer = new char[iFileLength+1];
	  iBytesRead = FileRead(iFileHandle, pszBuffer, iFileLength);
      FileClose(iFileHandle);
	  for (int i=0;i<iBytesRead;i++)
	  {
        StringGrid1->RowCount += 1;
		StringGrid1->Cells[1][i+1] = pszBuffer[i];
		StringGrid1->Cells[2][i+1] = IntToStr((int)pszBuffer[i]);
	  }
	  delete [] pszBuffer;
	}
    catch(...)
    {
	  Application->MessageBox(
		L"Can't perform one of the following file operations: Open, Seek, Read, Close.",
		L"File Error", IDOK);
    }
  }
}

Uses