Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: PreProcessing.pas   Sprache: Delphi

unit PreProcessing;
interface
uses
  //----------------------------------------------------------------------------
  //local
  //----------------------------------------------------------------------------
  OwnUtils,GenDefs,Utilities,Splash,OptionClass,Lizenz,language,
  //----------------------------------------------------------------------------
  //global
  //----------------------------------------------------------------------------
  windows,sysutils,forms,dateutils;
//----------------------------------------------------------------------------
//
//----------------------------------------------------------------------------
const
  //smax=20;
  em=13000;
  //----------------------------------------------------------------------------
  //Types
  //----------------------------------------------------------------------------
type
  Tffblk= record
    ff_reserved:integer;
    ff_fsize:integer;//file size
    ff_attrib:word;//attribute found
    ff_ftime:byte;//file time
    ff_fdate:byte;//file date
    ff_name: array [0..255] of char;//found file name
  end;
  cast= record
    case boolean of
      true:
        (tp:^Tffblk);
      false:
        (ti:integer);
  end;
  //----------------------------------------------------------------------------
  //
  //----------------------------------------------------------------------------
var
  Mutex:THandle;
  ll1,ll2,i:integer;
  MyDir,DI,PS:String;
  MS:TMemoryStatus;
  //----------------------------------------------------------------------------
  //
  //----------------------------------------------------------------------------
procedure GetContext();
procedure PostProcess();
procedure PreProcess(Frame_title:String);
//----------------------------------------------------------------------------
//
//----------------------------------------------------------------------------
implementation
{ ------------------------------------------------------------------ }
{ -                                                                - }
{ -   Main Program                                                 - }
{ -                                                                - }
{ ------------------------------------------------------------------ }
procedure PreProcess(Frame_title:String);
var
  CDI:JString;
  HelpName:JString;
  Preprocessed:boolean;
begin
  Preprocessed:=false;
  Application.Title:=Frame_title;
  ColumboFileName:=Application.Title+'.exe';
  //
  SplashForm1:=TSplashForm.Create(nil);
  with splashform1 do
  if Application.title=Title_Elbe then
     image1.BringToFront
  else if lang=german then
    image2.BringToFront
  else
    image3.BringToFront;
  // get options and check parity
  GetContext();
  Lizenz1:=TLizenzForm.Create(nil);
  Opt:=TOptionDialog.create(nil);
  Lizenz1.checklicensesum();
  Opt.Hide();
  Opt.PostCheck();
  //------------------------------------------------
  //memory tracking
  //------------------------------------------------
  GlobalMemoryStatus(MS);
  InitiallyAvail:=MS.dwAvailPhys;
  //------------------------------------------------
  //get Options    U3 Stick?
  //------------------------------------------------
  DiskType:=getDiskType(opt.R.ProgramDir);
  MyDir:=getCurrentDir+'\'+ExtractFileName(Optionsfilename(Application.Title));
  if DiskType=DRIVE_REMOVABLE then
    ExitProcess(99);
  //
  if (DiskType=DRIVE_REMOTE)and not(opt.R.privileged='J'then begin
    errorn(132,'dies ist keine Netzwerklizenz');
    ExitProcess(0);
  end
  else if (DiskType=DRIVE_REMOVABLE) then begin
    errorn(159,'dies ist keine tragbare Lizenz');
    ExitProcess(0);
  end;
  //set program dir
  DI:=getCurrentDir+'\';
  CDI:=opt.R.ProgramDir;
  if LowerCase(String(DI))<>LowerCase(CDI) then begin
    DI:=String(opt.R.ProgramDir);
    SetCurrentDirectory(PChar(DI));
  end;
  GetContext();
  Opt.setDaysUsed(Installkey,Opt.R.SecretKey,Productnumber);
  //
  if Application.Title=Title_Elbe then
    opt.R.Edition:=Standard;
  Mutex:=CreateMutex(nil,true,PWChar(Application.Title));
  if (Mutex=0)OR(GetLastError=ERROR_ALREADY_EXISTS) then
    errorn(133,Application.Title+' läuft bereits')
  else if (DiskType=DRIVE_REMOTE)and not(opt.R.privileged='J'then begin
    errorn(134,'dies ist keine Netzwerklizenz');
    ExitProcess(0);
  end
  else
    Preprocessed:=true;
  Opening:=true;
  if opt.R.language=german then
    HelpName:='standard.deutsch.chm'
  else
    HelpName:='standard.english.chm';
  Application.HelpFile:=String(opt.R.ProgramDir)+HelpName;
  if not FileExists(Application.HelpFile) then
    errorn(135,'Hilfedatei fehlt');
  if not Preprocessed then
    ExitProcess(0);
end;
procedure PostProcess();
begin
  //------------------------------------------------
  //Put Options
  //------------------------------------------------
  //opt.R.DaysUsed:=6;   //for testing
  //Opt.R.FirstUse:=StrToDate('01.08.2010');
  //------------------------------------------------
  opt.PutOptions(PChar(Optionsfilename(Application.Title)));
  ReleaseMutex(Mutex);
end;
//------------------------------------------------------------------------------
//
//get Context
//
//------------------------------------------------------------------------------
procedure GetContext();
const
  lines=22;
  columns=7;
  ext: array [0..lines,1..columns] of String=(
    //ext name format exe  filename lex,pretty,back,meas,CFA,DFA,Func
    //--------------------------------------------------------------------------
    ('*.abap','Abap','Free','0','Abap','L','0'),
    ('*.acc;*.yacc;*.y','Accent','Free','0','Accent','L','0'),
    ('*.adb;*.ads','Ada','Free','0','Ada','L','0'),
    ('*.cob;*.cbl;*.cpy;*','Cobol','Fixed','0','Cobol','S','0'),
    ('*.c;*.cpp;*.h','C','Free','0','C','L','0'),
    ('*.bat;*.cmd','Command','Free','1','Bat','L','0'),
    ('*.pas;*.dfm;*.inc','Delphi','Free','0','Delphi','L','0'),
    ('*.ftn;*.ftn77;*.f90','Fortran','Free','0','Fortran','L','0'),
    ('*.in','GAP','Free','0','GAP','L','0'),
    ('*.asm','HLAsm','Fixed','0','HLASM','L','0'),
    ('*.java','JAVA','Free','0','Java','L','0'),
    ('*.jcl','Job Control','Fixed','0','JCL','L','0'),
    ('*.thy','Isabelle','Free','0','Isabelle','L','1'),
    ('*.lex','Lex','Free','0','Lex','L','0'),
    ('*.mt;*.mt940','MT940','Free','0','MT940','L','0'),
    ('*.pl','Perl','Free','0','Perl','L','0'),
    ('*.net','Petri Net','Free','0','Petri','S','1'),
    ('*.poe','SPS','Free','0','SPS','L','0'),
    ('*.txt','Text','Free','0','Text','L','0'),
    ('*.trs','TRS','Free','0','TRS','S','1'),
    ('*.rexx','REXX','Free','0','REXX','L','0'),
    ('*.vhdl','VHDL','Free','0','Vhdl','L','0'),
    ('*.xml','XML','Free','0','XML','L','0'));
var
  i,ll,li,le:integer;
  S:String;
  //restriction for Elbe
  procedure restrict(li:integer);
  begin
    if Application.Title=Title_Elbe then begin
        extensions[li].lexonly:=true
    end;
  end;
//get table entries
  procedure en(S1,S2,S3,S4,S5,S6,S7:string);
  begin
    if FileExists(S+S5+dlle) then begin
      extensions[li].ext:=S1;
      extensions[li].longname:=S2;
      extensions[li].format:=FreeFormat;
      if S3='Fixed' then
        extensions[li].format:=FixedFormat;
      extensions[li].isexecutable:=S4='1';
      extensions[li].dllname:=S5;
      extensions[li].lexonly:=S6='L';
      extensions[li].PrettyPrint:=S7='1';
      restrict(li);
      li:=li+1;
    end
  end;
begin
  S:=getCurrentDir+'\';
  ll:=0;
  le:=length(ext)-1;
  for i:=0 to le do
    if FileExists(S+ext[i,5]+dlle) then
      ll:=ll+1;
  setlength(AD,ll);
  setlength(ADhandle,ll);
  setlength(extensions,ll);
  for i:=0 to ll-1 do
    ADhandle[i]:=0;
  li:=0;
  for i:=0 to le do
    en(ext[i,1],ext[i,2],ext[i,3],ext[i,4],ext[i,5],ext[i,6],ext[i,7]);
end;
//----------------------------------------------------------------------------
//Static Variables
//----------------------------------------------------------------------------
end.

¤ Dauer der Verarbeitung: 0.16 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff



                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik