sobota, 21 czerwca 2025

priority_queue - C++ Builder

 



#include <vcl.h>

#include <System.SysUtils.hpp>

#include <iostream>

#include <queue>

#include <tuple>

#pragma hdrstop


#include "Unit1.h"

using namespace std;

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------


struct info_var_Data

{

float value;

UnicodeString name;

};


__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{


}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{


 float data_Values[8]={0.00,0.11,0.22,0.33,0.44,0.55,0.66,0.77};

 UnicodeString v_Names[8]={"VarEmty","varNull","varSmallint","varInteger","varSingle",

 "varDouble","varVurrency","varDate"};

 struct info_var_Data *v_Data=new struct info_var_Data[8];

 struct info_var_Data *temp_Values=new struct info_var_Data[8];

 for(int i=0;i<8;i++)

 {

v_Data[i].value=data_Values[i];

v_Data[i].name=v_Names[i];

 }


 using x_Date=pair<float,UnicodeString>;

 priority_queue<x_Date> temp;

 int temp_Index[8]={3,0,1,4,2,7,5,6,};

 initializer_list<x_Date> v8

 {

  {v_Data[temp_Index[0]].value,v_Data[temp_Index[0]].name},

  {v_Data[temp_Index[1]].value,v_Data[temp_Index[1]].name},

  {v_Data[temp_Index[2]].value,v_Data[temp_Index[2]].name},

  {v_Data[temp_Index[3]].value,v_Data[temp_Index[3]].name},

  {v_Data[temp_Index[4]].value,v_Data[temp_Index[4]].name},

  {v_Data[temp_Index[5]].value,v_Data[temp_Index[5]].name},

  {v_Data[temp_Index[6]].value,v_Data[temp_Index[6]].name},

  {v_Data[temp_Index[7]].value,v_Data[temp_Index[7]].name},

 };

 for(int i=0;i<8;i++)

 {

  temp_Values[i].value=v_Data[temp_Index[i]].value;

  temp_Values[i].name=v_Data[temp_Index[i]].name;

  StringGrid1->Cells[i][0]=FloatToStrF(temp_Values[i].value,ffGeneral,2,2);

  StringGrid1->Cells[i][1]=temp_Values[i].name;


 }

 for(const auto &it : v8)

 {

temp.push(it);

 }

 int j=0;

 while(!temp.empty())

 {

  StringGrid2->Cells[j][0]=FloatToStrF(temp.top().first,ffGeneral,2,2);

  StringGrid2->Cells[j][1]=temp.top().second;

  temp.pop();

  ++j;

 }

 delete [] v_Data;

 delete [] temp_Values;

}

czwartek, 19 czerwca 2025

Loading text files - C++ Builder

 



pFile.h

#include <Vcl.Forms.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <Vcl.FileCtrl.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TTimer *Timer1;
TLabel *Label1;
TFileListBox *FileListBox1;
TDirectoryListBox *DirectoryListBox1;
TDriveComboBox *DriveComboBox1;
TMemo *Memo1;
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FileListBox1Change(TObject *Sender);
private: // User declarations
void __fastcall init_Components();
void __fastcall Run();
public: // User declarations
DWORD size_Bytes;
HANDLE ident;
char buff[1024+1024+1024+1024];
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

pFile.cpp

#include <vcl.h>
#pragma hdrstop

#include "pFile.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
SECURITY_ATTRIBUTES s_a;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
  s_a={sizeof(SECURITY_ATTRIBUTES),NULL,TRUE};
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Run()
{
int i;
char c='.';
memset(buff,0,sizeof(buff)-1);
ident=CreateFile(FileListBox1->FileName.c_str(),GENERIC_READ, FILE_SHARE_READ,
&s_a,OPEN_EXISTING,0,NULL);
if(ident!=INVALID_HANDLE_VALUE)
ReadFile(ident,&buff,sizeof(buff),&size_Bytes,NULL);
for(i=0;i<sizeof(buff)-1;i++)
if(buff[i]==NULL)
  buff[i]=c;
Memo1->Text=buff;
CloseHandle(ident);

}
void __fastcall TForm1::init_Components()
{
DirectoryListBox1->FileList=FileListBox1;
DriveComboBox1->DirList=DirectoryListBox1;

}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 UnicodeString t,d;
 t=TimeToStr(Time());
 d=DateToStr(Date());
 Label1->Caption=t+"  "+d;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 init_Components();
}