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 

OpenOffice.org/DOCX/FB2 Viewer
Goto page Previous  1, 2, 3 ... 10, 11, 12 ... 17, 18, 19  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Wed Nov 07, 2007 17:29    Post subject: Reply with quote

По поводу перехвата клавиш для Lister'а.

Необходимо использовать интерфейс IDocHostUIHandler, там есть специальный метод.

Немного информации по этому интерфейсу есть в DRKB3.0
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Wed Nov 07, 2007 17:45    Post subject: Reply with quote

Спасибо. Посмотрю
Back to top
View user's profile Send private message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Thu Nov 08, 2007 11:45    Post subject: Reply with quote

Выкачал новую версию.
1) Из-за реорганизации временных папок вот какая проблема:
файлы fb2 в кодировке windows-1251 с русскими буквами в названии не открываются.
Потому что когда создается временный xml-файл и в него записывается путь, то всегда используется функция UTF8Encode,
что естественно для русских букв с кодировкой windows-1251 выдает абракадабру.

2) Если нужна помощь в освоении IDocHostUIHandler-интерфейса, то могу попытаться помочь.
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Nov 08, 2007 15:42    Post subject: Reply with quote

1) Подтверждаю
Надо что-то делать. При кодировке xml "windows-1251" надо записывать все в ANSI.
Какие бывают еще кодировки в FB?

2) Да, нужна.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Thu Nov 08, 2007 16:04    Post subject: Reply with quote

FB2 - это стандарт, там всё прописано на сайте:
http://www.fictionbook.org/index.php/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B0_FB2_%D0%BE%D1%82_Sclex

Quote:
Общая структура документа. Кодировки
FB2-документ состоит из объявления XML и корневого элемента <FictionBook>. То есть выглядит это так:

<?xml version="1.0" encoding="windows-1251"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
xmlns:l="http://www.w3.org/1999/xlink">
...
</FictionBook>
Как видно, в первой строке в значении атрибута encoding надо правильно указать кодировку документа. В приведенном примере это windows-1251, а в другом случае могла бы быть и utf-8. utf-8 также является кодировкой по умолчанию, использующейся в случае отсутствия атрибута encoding или всего XML-объявления.

Ниже указано, какая кодировка каким языкам соответствует:

windows-1251 - английский и кириллица (русский, болгарский и т.д.)
windows-1252 - западно-европейские языки (английский, французский, испанский и т.д.)
windows-1250 - английский и восточно-европейские (польский, чешский и т.д.)

_________________
Xubuntu
Back to top
View user's profile Send private message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Thu Nov 08, 2007 16:54    Post subject: Reply with quote

1) может придумать другое построение временных папок?

2) Английская статья с небольшим примером:
http://www.delphidabbler.com/articles?article=18

Также нашел компонент, которых этот интерфейс реализует EmbeddedWB:
http://www.bsalsa.com/

И вот как можно использовать метод:
Code:

  type
  TCustomizedWebBrowser = class(TWebBrowser, IDocHostUIHandler)
   ...

function TCustomizedWebBrowser.TranslateAccelerator(const lpMsg: PMSG;
  const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT;
begin
  Result := S_FALSE;
 
  with lpMsg^ do
    if (message = WM_KEYDOWN) and (GetKeyState(VK_CONTROL) >= 0) then
      begin
        MessageDlg(Char(wParam), mtWarning, [mbOK], 0);

        Result := S_OK;
      end
end;

Пока все, что смог.
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Nov 08, 2007 18:36    Post subject: Reply with quote

Ник wrote:
FB2 - это стандарт, там всё прописано на сайте:

OK, спасибо. Значит, если encoding <> "UTF-8", можно просто считать, что файл в ANSI. Если пренебрегать кодировками windows-1252 и т.д. Они наверное, нечасто в русских книгах встречаются Smile
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Thu Nov 08, 2007 19:18    Post subject: Reply with quote

Версия 1.6.9.

Starina wrote:
1) может придумать другое построение временных папок?

Какое?
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Starina



Joined: 06 Nov 2007
Posts: 13

Post (Separately) Posted: Fri Nov 09, 2007 10:54    Post subject: Reply with quote

Первое, что приходит в голуву это приводить все имена файлов к английским буквам (незнаю будет это проще или нет?)
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Nov 09, 2007 14:54    Post subject: Reply with quote

Starina wrote:
Первое, что приходит в голуву это приводить все имена файлов к английским буквам (незнаю будет это проще или нет?)

1 А если имя %TEMP% папки русское?
2 А если есть два файла "Dobycha.fb2" и "Добыча.fb2"?
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Fri Nov 09, 2007 15:05    Post subject: Reply with quote

А генерировать на базе имени файла случайный неповторяющийся набор цифр и латинских букв в качестве имени временной директории и временного файла?
Типа MD5 от имени?
_________________
Xubuntu
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Nov 09, 2007 15:09    Post subject: Reply with quote

Ник wrote:
А генерировать на базе имени файла случайный неповторяющийся набор цифр и латинских букв в качестве имени временной директории

А если п-лю разрешена запись только в %TEMP% (но не в C:\)?
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Fri Nov 09, 2007 15:35    Post subject: Reply with quote

То есть проблема в кодировке имени папки %TEMP% ?
Или можно внутри неё делать дополнительные папки с "правильной" кодировкой имени?
_________________
Xubuntu
Back to top
View user's profile Send private message
Alextp



Joined: 06 Feb 2005
Posts: 4957

Post (Separately) Posted: Fri Nov 09, 2007 15:40    Post subject: Reply with quote

Ник wrote:
То есть проблема в кодировке имени папки %TEMP% ?

Да. Потому что в xml пишется полное имя xsl файла. А он, xsl, в %TEMP%.
_________________
UniViewer - CudaText - LogViewer
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1256
Location: Москва

Post (Separately) Posted: Fri Nov 09, 2007 16:57    Post subject: Reply with quote

Не понял - он же для всех файлов одинаковый - на фига он там, а не в директории плагина?
_________________
Xubuntu
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 10, 11, 12 ... 17, 18, 19  Next
Page 11 of 19

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group