123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- {=================================================================
- TestReg.pp versión 1.2 12/02/2002
- Copyright (C) 2000-2002 by Luis Digital ([email protected])
- TestReg pone en prueba y sirve de ejemplo para TRegistry.
- Este es software libre bajo la licencia GNU/GPL.
- Ver COPYING.FPC y COPYING incluidos con este programa.
- Este programa es distribuido esperando que sea útil,
- pero SIN NINGUNA GARANTIA.
- =================================================================}
- Program TestReg;
- {$mode objfpc} {$H+}
- Uses registry, SysUtils;
- Const
- SInteger = 'Integer';
- SBinaryData = 'Binary';
- SBoolean = 'Boolean';
- SCurrency = 'Currency';
- SExString = 'ExpandString';
- SDate = 'Date';
- STime = 'Time';
- SDateTime = 'DateTime';
- SString = 'String';
- SFloat = 'Float';
- IntVal = 321;
- FloatVal = 123.456;
- CurrencyVal = 456;
- BoolVal = False;
- StringVal = 'This is a normal string';
- SExpandVal = 'This is an expand string: "%SystemDir%"';
- Var
- I: Integer;
- SubKey: String;
- B : Boolean;
- F: Double;
- C : Currency;
- S : String;
- BinData: Array [0..15] of Byte;
- D : TDateTime;
- DateVal,TimeVal,DateTimeVal : TDateTime;
- Begin
- With TRegistry.Create do
- Try
- RootKey := HKEY_CURRENT_USER;
- SubKey := '\Software\FPC\testreg';
- CreateKey(SubKey);
- If Not OpenKey(SubKey,False) then
- Writeln('Could not open key: ',SubKey)
- else
- begin
- Writeln('Writing data');
- WriteInteger(SInteger, IntVal);
- For I:= 0 To 15 Do
- BinData[I] := I;
- WriteBinaryData(SBinaryData,BinData,SizeOf(BinData));
- WriteBool(SBoolean, BoolVal);
- WriteCurrency(SCurrency, CurrencyVal);
- WriteFloat(SFloat, FloatVal);
- WriteExpandString(SExString,SExpandVal);
- WriteString(SString,StringVal);
- DateVal:=Date;
- WriteDate(SDate, DateVal);
- TimeVal:=Time;
- WriteTime(STime, TimeVal);
- DateTimeVal:=Now;
- WriteDateTime(SDateTime, DateTimeVal);
- Writeln('Reading data');
- I:=ReadInteger(Sinteger);
- If (I<>IntVal) then
- Writeln('Read Integer differs: ',I);
- FillChar(BinData,SizeOf(Bindata),0);
- I:=GetDataSize(SBinaryData);
- If I<>16 then
- Writeln('Size Binary Data differs: ',I)
- else
- begin
- ReadBinaryData(SBinaryData, BinData,I);
- For I:=0 to 15 do
- If BinData[i]<>I then
- Write('Binary Data byte ',i,' differs : ',BinData[i]);
- end;
- B:=ReadBool(SBoolean);
- If (B<>BoolVal) then
- Writeln('Boolean value differs : ',B);
- C:=ReadCurrency(SCurrency);
- If (C<>CurrencyVal) then
- Writeln('Currency value differs: ', C);
- S:=ReadString(SString);
- If (S<>StringVal) then
- Writeln('Read String differs: "',S,'"(',Length(s),')<>"',StringVal,'"(',length(StringVal),')');
- D:=ReadDateTime(SDateTime);
- If (D<>DateTimeVal) then
- Writeln('Read DateTime differs : ',D);
- D:=ReadDate(SDate);
- If (D<>DateVal) then
- Writeln('Read Date differs : ',D);
- D:=ReadDateTime(STime);
- If (D<>TimeVal) then
- Writeln('Read Time differs : ',D);
- F:=ReadFloat(SFloat);
- If ((F-FloatVal)>1e-4) then
- Writeln('Read Float differs: ',F);
- If Not DeleteValue(SFloat) Then
- Writeln('Error: could not delete float value');
- CloseKey;
- SubKey:='\Software\fpc\testreg2';
- Createkey(SubKey);
- If Not DeleteKey(SubKey) Then
- Writeln('Error: could not delete key',subkey);
- end;
- Finally
- CloseKey;
- free;
- end;
- End.
|