Changeset 29 for trunk/UDriveScan.pas


Ignore:
Timestamp:
Apr 7, 2016, 11:08:31 PM (8 years ago)
Author:
chronos
Message:
  • Added: Random data pattern write operation.
  • Modified: Reversed list of operations so new ones are placed at top of the list.
  • Fixed: Error on openning recent file which not exists.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UDriveScan.pas

    r27 r29  
    3535    Mode: TRunMode;
    3636    WritePattern: Byte;
     37    WritePatternRandom: Boolean;
    3738    procedure LoadFromDriveInfo(DriveInfo: TDriveInfo);
    3839  end;
     
    9192    Mode: TRunMode;
    9293    WritePattern: Byte;
     94    WritePatternRandom: Boolean;
    9395    SectorSize: Integer;
    9496    SectorStart: Integer;
     
    292294  RealSize: Integer;
    293295  Buffer: array of Byte;
     296  I: Integer;
    294297begin
    295298  try
     
    303306    try
    304307      SetLength(Buffer, SectorSize);
    305       if Mode = rmWrite then
    306         FillChar(Buffer[0], Length(Buffer), WritePattern);
     308      if Mode = rmWrite then begin
     309        if not WritePatternRandom then
     310          FillChar(Buffer[0], Length(Buffer), WritePattern)
     311          else for I := 0 to Length(Buffer) - 1 do
     312            Buffer[I] := Random(256);
     313      end;
    307314      while FSectorCurrent < SectorEnd do begin
    308315        try
     
    370377  if Mode = rmNone then Result := 'None'
    371378  else if Mode = rmRead then Result := 'Read'
    372   else if Mode = rmWrite then Result := 'Write pattern $' + IntToHex(WritePattern, 2)
    373   else Result := '';
     379  else if Mode = rmWrite then begin
     380    if WritePatternRandom then Result := 'Write pattern random'
     381      else Result := 'Write pattern $' + IntToHex(WritePattern, 2);
     382  end else Result := '';
    374383end;
    375384
     
    391400  Mode := Profile.Mode;
    392401  WritePattern := Profile.WritePattern;
     402  WritePatternRandom := Profile.WritePatternRandom;
    393403end;
    394404
     
    428438    WriteInteger(Node, 'RunMode', Integer(Mode));
    429439    WriteInteger(Node, 'WritePattern', WritePattern);
     440    WriteBoolean(Node, 'WritePatternRandom', WritePatternRandom);
    430441    WriteString(Node, 'DriveName', DriveName);
    431442    WriteDateTime(Node, 'TimeStart', TimeStart);
     
    469480    Mode := TRunMode(ReadInteger(Node, 'RunMode', 0));
    470481    WritePattern := ReadInteger(Node, 'WritePattern', 0);
     482    WritePatternRandom := ReadBoolean(Node, 'WritePatternRandom', False);
    471483    DriveName := ReadString(Node, 'DriveName', '');
    472484    TimeStart := ReadDateTime(Node, 'TimeStart', 0);
Note: See TracChangeset for help on using the changeset viewer.