Kaynağa Gözat

* added uutlSerialization

master
Bergmann89 8 yıl önce
ebeveyn
işleme
7f07491db0
1 değiştirilmiş dosya ile 69 ekleme ve 0 silme
  1. +69
    -0
      uutlSerialization.pas

+ 69
- 0
uutlSerialization.pas Dosyayı Görüntüle

@@ -0,0 +1,69 @@
unit uutlSerialization;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils;

type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IutlFileReader = interface
['{3A9C3AE3-CAEE-44C9-85BE-0BCAA5C1BE7A}']
function LoadStream(const aFilename: String; const aStream: TStream): Boolean;
end;

IutlFileWriter = interface
['{3DF84644-9FC4-4A8A-88C2-73F13E72B1ED}']
procedure SaveStream(const aFilename: String; const aStream: TStream);
end;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TutlSimpleFileReader = class(TInterfacedObject, IutlFileReader)
public
function LoadStream(const aFilename: String; const aStream: TStream): Boolean;
end;

TutlSimpleFileWriter = class(TInterfacedObject, IutlFileWriter)
public
procedure SaveStream(const aFilename: String; const aStream: TStream);
end;

implementation

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TutlSimpleFileWriter//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure TutlSimpleFileWriter.SaveStream(const aFilename: String; const aStream: TStream);
var
fs: TFileStream;
begin
fs := TFileStream.Create(aFilename, fmCreate);
try
fs.CopyFrom(aStream, aStream.Size - aStream.Position);
finally
FreeAndNil(fs);
end;
end;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TutlSimpleFileReader//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function TutlSimpleFileReader.LoadStream(const aFilename: String; const aStream: TStream): Boolean;
var
fs: TFileStream;
begin
result := FileExists(aFilename);
if result then begin
fs := TFileStream.Create(aFilename, fmOpenRead);
try
aStream.CopyFrom(fs, fs.Size - fs.Position);
finally
FreeAndNil(fs);
end;
end;
end;

end.


Yükleniyor…
İptal
Kaydet