1 (изменено: BaTcoH, 2013-10-04 13:22:10)

Тема: AHK: Копирование текста

Помогите написать небольшую функцию для парсинга.
Есть файл с такими записями в нём:


<a class="mf_bold mf_t14" href="/bk/lizaveta82/"</a>
<a class="mf_bold mf_t14" href="/maik/sokolikksu/"</a>

Нужно чтобы при нажатии на F1 происходило следующее:
Копировалось в буфер обмена всё то, что между <a class="mf_bold mf_t14" href="/ и /"</a>,  то есть: "mail/lizaveta82".
А так же чтобы при повторном нажатии F1 копировалась следующее значение, то есть: "bk/sokolikksu". Спасибо.

2 (изменено: serzh82saratov, 2013-10-04 13:25:41)

Re: AHK: Копирование текста


Var = 
(
<a class="mf_bold mf_t14" href="/bk/lizaveta82/"</a>
<a class="mf_bold mf_t14" href="/mail/sokolikksu/"</a>
)

Pos = 1 
P1 = <a class="mf_bold mf_t14" href="/
P2 = /"</a>
    
1::
    Pos := RegExMatch(Var, "\Q" P1 "\E(.*?)\Q" P2 "\E", Res, Pos)
    Pos += StrLen(Res1)
    MsgBox % Res1  
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3 (изменено: BaTcoH, 2013-10-04 13:29:54)

Re: AHK: Копирование текста

А как сделать чтобы поиск происходил в текстовом файле, а не в самом скрипте и не выводило на экран а копировало в буфер обмена?

4

Re: AHK: Копирование текста

А как сделать чтобы поиск происходил в текстовом файле, а не в самом скрипте.

копировалось в буфер обмена

Команды FileRead и Clipboard

при повторном нажатии переходило к следующей такой же маской

???

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: AHK: Копирование текста

Спасибо огромное.

6

Re: AHK: Копирование текста

В FileRead примени опцию *t иначе с RegEx будут проблемы.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Копирование текста


FileRead, Var, *t C:\Address.txt
Pos = 1 
P1 = <a class="mf_bold mf_t14" href="/
P2 = /"</a>
1::
    Pos := RegExMatch(Var, "\Q" P1 "\E(.*?)\Q" P2 "\E", Res, Pos)
    Pos += StrLen(Res1)
    clipboard = % Res1
    return

Что делаю не так?

8

Re: AHK: Копирование текста

clipboard := Res1
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9 (изменено: BaTcoH, 2013-10-04 14:12:42)

Re: AHK: Копирование текста

Здесь ошибки не возникает.
Проблема в том, что он не находит что копировать.

10

Re: AHK: Копирование текста

Ну так проведи отладку:

 
FileRead, Var, *t C:\Address.txt
MsgBox % Var
Pos = 1 
P1 = <a class="mf_bold mf_t14" href="/
P2 = /"</a>
1::
    Pos := RegExMatch(Var, "\Q" P1 "\E(.*?)\Q" P2 "\E", Res, Pos)
    MsgBox % Res1
    Pos += StrLen(Res1)
    clipboard := Res1
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Копирование текста

Попробовал запихнуть в файл:


<a class="mf_bold mf_t14" href="/bk/lizaveta82/"</a>
<a class="mf_bold mf_t14" href="/mail/sokolikksu/"</a>

Скрипт хорошо стал функционировать.
Но проблема в том, что у меня не весь файл состоит из таких строк. Там полно таких как:


<script type="text/javascript">
try 
function timeInterval(bP) 
    if (!rT[bP]) rT[bP] = new Date();
    else 
        rT.i[rT.i.length] = bP + '=' + ( (new Date()).getTime() - rT[bP].getTime() );
        delete rT[bP];

и т.п мусора.

12

Re: AHK: Копирование текста

и т.п мусора.

Ну и что...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13 (изменено: BaTcoH, 2013-10-04 15:15:54)

Re: AHK: Копирование текста

Всё, разобрался. Спасибо.

14

Re: AHK: Копирование текста

И ещё маленький штришок, если вас не затруднит)
Как сделать проверку. К примеру.
Если у нас bk/lizaveta82 получается, то в буфер обмена чтобы копировалось lizaveta82@bk.ru
А если mail/sokolikksu то sokolikksu@mail.ru

15

Re: AHK: Копирование текста


Var = 
(
<a class="mf_bold mf_t14" href="/bk/lizaveta82/"</a>
<a class="mf_bold mf_t14" href="/MsgBox/"</a>
<a class="mf_bold mf_t14" href="/mail/sokolikksu/"</a>
)

Pos = 1 
P1 = <a class="mf_bold mf_t14" href="/
P2 = /"</a>
    
1::
    Pos := RegExMatch(Var, "\Q" P1 "\E(.*?)\Q" P2 "\E", Res, Pos)
    Pos += StrLen(Res := Res1)  
    If RegExMatch(Res, "(.*?)/(.*)", Match)
        Res := Match2 "@" Match1 ".ru"
    MsgBox % Res
    return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK: Копирование текста

Огромное спасибо.

17 (изменено: sergeiplugatyr, 2013-10-06 16:25:32)

Re: AHK: Копирование текста

Вопрос по теме.
Не получается у меня с русскими словами сделать.

FileRead, Var, *t %temp%\time.txt
Pos = 1
P1 = <div class="Таймер"> ; Типо такого
P2 = </div>
Pos := RegExMatch(Var, "\Q" P1 "\E(.*?)\Q" P2 "\E", Res, Pos)
GuiControl, , Edit1, % Res1

Ну так вот, если там написано русское слово, то результат не отправляется в контрол Edit1, а без него работает но результат уже другой.

Как сказал мой дед - Я твой дед

18

Re: AHK: Копирование текста

Проблема решилась

FileEncoding, UTF-8
Как сказал мой дед - Я твой дед