Почему я вижу только первые символы строк?
Добавлено: Чт янв 15, 2009 05:24
Вот взятый код отсюда
http://www.tckb.ru/index.php?title=%D0% ... and_Delphi
Вот файл text.txt
Подключаю плагин к тоталу, вижу только первые символы…
В чём проблема? Использую версию тотала 7.02, а версию Delphi 2009. Может это из-за юникода, или проблемы искать в чём-то другом?
http://www.tckb.ru/index.php?title=%D0% ... and_Delphi
Код: Выделить всё
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.
Код: Выделить всё
11111111111111
22222222222222222222
33333333333333333333333
Код: Выделить всё
1
2
3