Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
17.04.2013
Размер:
5.48 Кб
Скачать
//---------------------------------------------------------------------------
#include <dos.h>
#include <string.h>
#include <stdio.h>
#include <SysUtils.hpp>
#include <stdlib.h>
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#endif
extern bool p;//определение глобальной переменой p и n
extern bool n;

//Определение функции переводяшей байты в Кб и Мб ,
//округляющей эти значения
float okrugl(long int baits)
   { int bait;
     float size;
     char bufer[256];
     bait=1024;
     AnsiString bufer_preobraz;

     if (baits>=(bait*bait))
        { size=((float)baits/(bait*bait));
          sprintf(bufer,"%.2f",size);
          char  *ptr = strchr(bufer,'.');
          bufer[ptr-bufer]=',';
          bufer_preobraz=((AnsiString)bufer);
          return (StrToFloat(bufer));
        };
     if((baits<(bait*bait))&&(baits>=bait))
        { size=((float)baits/bait);
          sprintf(bufer,"%.2f",size);
          char  *ptr = strchr(bufer,'.');
          bufer[ptr-bufer]=',';
          bufer_preobraz=((AnsiString)bufer);
          return (StrToFloat(bufer));
        };
     if(baits<bait)
        { size=((float)baits);
          sprintf(bufer,"%.2f",size);
          char  *ptr = strchr(bufer,'.');
          bufer[ptr-bufer]=',';
          bufer_preobraz=((AnsiString)bufer);
          return (StrToFloat(bufer));
        };
    return 0;
   }
//---------------------------------------------------------------
//Определение функции делающей размерность байты  Кб,Мб
   AnsiString razmer(long int baits)
  {    int bait;
       bait=1024;
       AnsiString razmer;
       if (baits>=(bait*bait))
          { razmer="Мбайт";
            return (razmer);
          };
       if((baits<(bait*bait))&&(baits>=bait))
         { razmer="Кбайт";
           return (razmer);
         };
       if(baits<bait)
         { razmer="Байт";
           return (razmer);
         };
         return 0;
  };
//-------------------------------------------------------------
//Определение функции выводящей день
  int day (unsigned short day)
      { long int day1;
        day1=(day&31);
        day1=(day1>>0);
        return day1;
       };
//-------------------------------------------------------------

// Определение функции выводящей месяц
  int month(unsigned short month )
       { long int month1;
         month1=(month&480);
         month1=(month1>>5);
         return month1;
        }
//--------------------------------------------------------------

// Определение функции выводящей год
  int age(unsigned short age )
       { long int age1;
         age1=(age&65024);
         age1=(age1>>9);
         return (age1+1980);
        }
 //--------------------------------------------------------------
//------------------------------------------------------------
//Функция для проверки введеной пользователем даты
void Data(AnsiString D)
{ struct data{
     char  chislo[3];
     char  mes[3];
     char  god[5];
              };
   char dest[9];
   int i=0,ch=0,me=0,go=0;
   struct data dat;
   dest[8]='\0';
//---------------------//
   dat.chislo[2]='\0';
   dat.mes[2]='\0';
   dat.god[4]='\0';
   strncpy(dest,D.c_str(),8);//Копирует 8 символов в строку dest

   for (i=0;i<2;i++)
      dat.chislo[i]=dest[i];
   for (i=0;i<2;i++)
      dat.mes[i]=dest[i+2];
   for (i=0;i<4;i++)
      dat.god[i]=dest[i+4];
  try{
     ch=StrToInt((AnsiString)dat.chislo);//переводим в начале char
     me=StrToInt((AnsiString)dat.mes);   //в AnsiString затем в Int
     go=StrToInt((AnsiString)dat.god);
  if (me>12||me<1)
       {
       ShowMessage("Введенно неверное значение для месяца");
       p=true;
       }
  if(ch>31||ch<1)
     {
     ShowMessage("Введенно неверное значение для дня ");
      p=true;
      }
  if((ch>28)&&(me==2)&&(go%4!=0))
      {
       ShowMessage("Феврвле 28 дней ");
      p=true;
      }
  if((ch>30)&&(me==4||me==6||me==9||me==11))
      {
       ShowMessage(" В "+(AnsiString)me+" месяце 30 дней ");
       p=true;
      }
  if((ch>29)&&(me==2)&&(go%4==0))
      {
       ShowMessage("Значения дня не верно");
       p=true;
      }

      }
  catch(EConvertError&)
      {ShowMessage("Не введена дата создания файла");
       p=true;                                        //Обработка исключения вызваного
       }                                             // ведением пустой строки в
                                                      //  MaskEdit
}
//---------------------------------------------------------------------------
//Функция обрабатывающая имя файла на синтаксические ошибки и недопустимые символы

 void Nam(AnsiString nam)
{ int i,y;
  char sim[]={'?','|',':','\\','/','>','<','*','\0'};

   if (AnsiStrScan(nam.c_str(),'.')!=NULL)
      y=strlen(AnsiStrRScan(nam.c_str(),'.'));
       if(y-1>3)
          {ShowMessage("Расширение файла  "+(nam)+"  должно быть < или = 3 символом");
           n=true;}

  else if(AnsiStrScan(nam.c_str(),'.')==NULL)
          {ShowMessage("Имя файла  "+(nam)+"  веденно не верно \n имя файла должно состоять из\n[имя_файла.расширение]");
           n=true;}

  for(i=0;i<8;i++)
    { if((AnsiStrScan(nam.c_str(),sim[i])!=NULL))
          {ShowMessage("Расширение файла  не может содержать  "+((AnsiString)sim[i]));
          n=true;}
    }
 }



Соседние файлы в папке Programa