Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Почему я вижу только первые символы строк? 
Author Message
fspl



PostPosted: Thu Jan 15, 2009 06:24    Post subject: Почему я вижу только первые символы строк? Reply with quote

Вот взятый код отсюда
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


Подключаю плагин к тоталу, вижу только первые символы…
Code:

1
2
3

В чём проблема? Использую версию тотала 7.02, а версию Delphi 2009. Может это из-за юникода, или проблемы искать в чём-то другом?
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group