wavsserviceimpl.~pas
来自「Delphi开发webservice的一套例子」· ~PAS 代码 · 共 72 行
~PAS
72 行
unit WavsServiceImpl;
interface
uses
WavsServiceIntf, InvokeRegistry, Classes, SysUtils, Forms;
type
TWavsService = class(TInterfacedObject, IWavsService)
private
sAppPath : String;
public
Constructor Create;
function GetWavsList : String; stdcall;
function GetWavFile(const sFileName : String) : String; stdcall;
end;
implementation
uses rjMime;
procedure WavsServiceFactory(out Obj: TObject);
begin
Obj := TWavsService.Create;
end;
{ TWavsService }
constructor TWavsService.Create;
begin
inherited Create;
sAppPath := ExtractFilePath(Application.ExeName);
end;
function TWavsService.GetWavFile(const sFileName: String): String;
var
ams : TMemoryStream;
ass : TStringStream;
begin
Result := '';
if (FileExists(sAppPath + 'wavs\' + sFileName)) then
begin
ams := TMemoryStream.Create;
ams.LoadFromFile(sAppPath + 'wavs\' + sFileName);
ass := TStringStream.Create('');
try
MimeEncodeStream(ams, ass);
Result := ass.DataString;
finally
ass.Free;
ams.Free;
end;
end;
end;
function TWavsService.GetWavsList: String;
var
sr: TSearchRec;
FileAttrs: Integer;
sFileName : String;
sSearchString : String;
iEncodeSize : Integer;
begin
Result := '';
sSearchString := sAppPath + 'wavs\' + '*.wav';
if FindFirst(sSearchString, FileAttrs, sr) = 0 then
begin
repeat
sFileName := sAppPath + 'wavs\' + sr.Name;
iEncodeSize := MimeEncodedSize(sr.Size);
sFileName := sFileName +
'
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?