fspl
|
Posted: Thu Jan 15, 2009 06:24 Post subject: Почему я вижу только первые символы строк? |
|
|
Вот взятый код отсюда
http://www.tckb.ru/index.php?title=%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B_%D0%BD%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_WFX-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0_%D0%BD%D0%B0_Borland_Delphi
Code: |
library TestPlag;
uses
fsplugin,
SysUtils,
Windows;
var
MainFile:TextFile;
MainFileName:string;
{$E wfx}
{$R *.res}
function FsInit(PluginNr:integer;pProgressProc:tProgressProc;pLogProc:tLogProc;
pRequestProc:tRequestProc):integer; stdcall;
Begin
End;
function FsFindFirst(path :pchar;var FindData:tWIN32FINDDATA):thandle; stdcall;
var
TmpFileName:ShortString;
Begin
Result:=0;
FindData.dwFileAttributes :=0;
FindData.nFileSizeHigh :=0;
FindData.nFileSizeLow :=0;
AssignFile (MainFile,MainFileName);
Reset (MainFile);
if not EOF (MainFile) then
begin
ReadLn(MainFile,TmpFileName);
FindData.nFileSizeLow :=Length(TmpFileName);
StrPCopy (FindData.cFileName,TmpFileName);
end
else
begin
StrPCopy (FindData.cFileName,'No records in text.txt');
end;
End;
function FsFindNext(Hdl:thandle;var FindData:tWIN32FINDDATA):bool; stdcall;
var
TmpFileName:ShortString;
Begin
Result:=True;
if not EOF (MainFile) then
begin
ReadLn (MainFile,TmpFileName);
FindData.dwFileAttributes :=0;
FindData.nFileSizeHigh :=0;
FindData.nFileSizeLow :=Length(TmpFileName);
StrPCopy (FindData.cFileName,TmpFileName);
end
else
result:=False;
End;
function FsFindClose(Hdl:thandle):integer; stdcall;
Begin
CloseFile (MainFile);
end;
function FsPutFile(LocalName,RemoteName:pchar;CopyFlags:integer):integer; stdcall;
Begin
AssignFile (MainFile,MainFileName);
Append (MainFile);
WriteLn (MainFile,ExtractFilename(StrPas(RemoteName)));
CloseFile (MainFile);
Result:=FS_FILE_OK;
End;
function FsGetFile(RemoteName,LocalName:pchar;CopyFlags:integer;RemoteInfo:pRemoteInfo):integer; stdcall;
var
TmpLocalFile:TextFile;
TmpLocalFileName:ShortString;
Begin
TmpLocalFileName:=StrPas (LocalName);
AssignFile (TmpLocalFile,TmpLocalFileName);
Rewrite (TmpLocalFile);
WriteLn (TmpLocalFile,StrPas(RemoteName));
CloseFile (TmpLocalFile);
Result:=FS_FILE_OK;
End;
exports
FsInit,
FsFindFirst,
FsFindNext,
FsFindClose,
FsPutFile,
FsGetFile;
var
PointerPluginFile:pchar;
StrPluginFileName:ShortString;
begin
GetMem (PointerPluginFile,MAX_PATH);
GetModuleFilename (hInstance,PointerPluginFile,MAX_PATH);
StrPluginFileName:=Strpas (PointerPluginFile);
FreeMem (PointerPluginFile);
MainFileName:=ExtractFilePath(StrPluginFileName)+'text.txt';
if not FileExists (MainFileName) then FileCreate (MainFileName);
end.
|
Вот файл text.txt
Code: |
11111111111111
22222222222222222222
33333333333333333333333
|
Подключаю плагин к тоталу, вижу только первые символы…
В чём проблема? Использую версию тотала 7.02, а версию Delphi 2009. Может это из-за юникода, или проблемы искать в чём-то другом? |
|