unit uReadWriteParams; interface uses IniFiles; const cNameIniFile='\Params.ini'; type tReadWriteParams=class private IniFile:TIniFile; FName:string; procedure CreateFile; // создаем ini-файл с параметрами по умолчанию public constructor Create; destructor Destroy; procedure ReadParams; // считываем параметры; procedure WriteParams; // записываем параметры в файл end; implementation uses SysUtils,FileCtrl, MassScale, Controller_UnRolling, Hardware; constructor tReadWriteParams.Create; begin // FName:=cNameIniFile; FName:=GetCurrentDir+cNameIniFile; if FileExists(FName) then begin IniFile:=TIniFile.Create(FName); end else begin CreateFile; end; end; destructor tReadWriteParams.Destroy; begin end; //----------------------------------------------------------------------------- // Создаем ini=файл с параметрами по умолчанию //----------------------------------------------------------------------------- procedure tReadWriteParams.CreateFile; var i:byte; begin IniFile:=TIniFile.Create(FName); IniFile.WriteInteger('General','ModeGenPeak',1); IniFile.WriteInteger('PeakMode0', 'PeakCount', cDefaultPeakCount); IniFile.WriteInteger('PeakMode0', 'MinMass', cDefaultMinMass); IniFile.WriteInteger('PeakMode0', 'MaxMass', cDefaultMaxMass); IniFile.WriteInteger('PeakMode0', 'MinAmplitude', cDefaultMinAmplitude); IniFile.WriteInteger('PeakMode0', 'MaxAmplitude', cDefaultMaxAmplitude); IniFile.WriteInteger('PeakMode0', 'Sigma', cDefaultSigma); IniFile.WriteInteger('PeakMode0', 'SigmaSigma', cDefaultSigmaSigma); IniFile.WriteInteger('PeakMode0', 'Noise', cDefaultNoise); IniFile.WriteInteger('PeakMode1', 'Noise', cDefaultNoise); IniFile.WriteString('PeakMode2', 'NameSpectrFile', cDefaultNameSpectrFile); IniFile.WriteString('PeakMode1', 'NamePeakFile', cDefaultNamePeakFile); IniFile.WriteFloat('Roll','CounterMassCoef', cRollCounterMassCoefficient); IniFile.WriteFloat('Roll','CounterdC', cRollCounterdC); for i:=1 to 10 do begin IniFile.WriteFloat('Roll','ShiftChanel'+inttostr(i), 0); end; end; //----------------------------------------------------------------------------- // считываем параметры из файла //----------------------------------------------------------------------------- procedure tReadWriteParams.ReadParams; var i:byte; begin // считываем режим генерации пика Params.ModeGenPeak:=IniFile.ReadInteger('General','ModeGenPeak',0); Params.PeakCount:=IniFile.ReadInteger('PeakMode0', 'PeakCount', cDefaultPeakCount); Params.MinMass:=IniFile.ReadInteger('PeakMode0', 'MinMass', cDefaultMinMass); Params.MaxMass:=IniFile.ReadInteger('PeakMode0', 'MaxMass', cDefaultMaxMass); Params.MinAmplitude:=IniFile.ReadInteger('PeakMode0', 'MinAmplitude', cDefaultMinAmplitude); Params.MaxAmplitude:=IniFile.ReadInteger('PeakMode0', 'MaxAmplitude', cDefaultMaxAmplitude); Params.Sigma:=IniFile.ReadInteger('PeakMode0', 'Sigma', cDefaultSigma); Params.SigmaSigma:=IniFile.ReadInteger('PeakMode0', 'SigmaSigma', cDefaultSigmaSigma); Params.Noise0:=IniFile.ReadInteger('PeakMode0', 'Noise', cDefaultNoise); Params.Noise1:=IniFile.ReadInteger('PeakMode1', 'Noise', cDefaultNoise); Params.NameSpectrFile:=IniFile.ReadString('PeakMode2', 'NameSpectrFile', cDefaultNameSpectrFile); Params.NamePeakFile:=IniFile.ReadString('PeakMode1', 'NamePeakFile', cDefaultNamePeakFile); Params.CounterMassCoef:=IniFile.ReadFloat('Roll','CounterMassCoef', cRollCounterMassCoefficient); Params.CounterdC:=IniFile.ReadFloat('Roll','CounterdC', cRollCounterdC); for i:=1 to 10 do begin Params.ShiftChannel[i]:=IniFile.ReadFloat('Roll','ShiftChanel'+inttostr(i), 0); end; end; //----------------------------------------------------------------------------- // записываем параметры в файл //----------------------------------------------------------------------------- procedure tReadWriteParams.WriteParams; var i:Byte; begin IniFile.WriteInteger('General','ModeGenPeak', Params.ModeGenPeak); IniFile.WriteInteger('PeakMode0', 'PeakCount', Params.PeakCount); IniFile.WriteInteger('PeakMode0', 'MinMass', Params.MinMass); IniFile.WriteInteger('PeakMode0', 'MaxMass', Params.MaxMass); IniFile.WriteInteger('PeakMode0', 'MinAmplitude', Params.MinAmplitude); IniFile.WriteInteger('PeakMode0', 'MaxAmplitude', Params.MaxAmplitude); IniFile.WriteInteger('PeakMode0', 'Sigma', Params.Sigma); IniFile.WriteInteger('PeakMode0', 'SigmaSigma', Params.SigmaSigma); IniFile.WriteInteger('PeakMode0', 'Noise', Params.Noise0); IniFile.WriteInteger('PeakMode1', 'Noise', Params.Noise1); IniFile.WriteString('PeakMode2', 'NameSpectrFile', Params.NameSpectrFile); IniFile.WriteString('PeakMode1', 'NamePeakFile', Params.NamePeakFile); IniFile.WriteFloat('Roll','CounterMassCoef', Params.CounterMassCoef); IniFile.WriteFloat('Roll','CounterdC', Params.CounterdC); for i:=1 to 10 do begin IniFile.WriteFloat('Roll','ShiftChanel'+inttostr(i), Params.ShiftChannel[i]); end; end; end.