<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; WSH or AHK: Копирование выделенных ссылок]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5076&amp;type=atom" />
	<updated>2010-10-22T15:30:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5076</id>
		<entry>
			<title type="html"><![CDATA[Re: WSH or AHK: Копирование выделенных ссылок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40740#p40740" />
			<content type="html"><![CDATA[<p>Благодарю!</p>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2010-10-22T15:30:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40740#p40740</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH or AHK: Копирование выделенных ссылок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40737#p40737" />
			<content type="html"><![CDATA[<p>В буфер обмена копирует текст не АНК, а приложение, где текст выделен. АНК только может послать команду на копирование, т.е. Ctrl-C или подобную. Приложение может копировать текст в разных форматах, в том числе и HTML. IE и Firefox копируют выделенное в HTML, а Опера вроде бы нет. Извлечь его можно, <a href="http://www.forum.script-coding.com/viewtopic.php?pid=35646#p35646">вот тут</a> я постил функцию для этого. Посмотрите, возможно, сгодится для Ваших целей.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2010-10-22T13:16:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40737#p40737</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH or AHK: Копирование выделенных ссылок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40734#p40734" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>DD пишет:</cite><blockquote><p>Умеют ли WSH или AHK копировать выделенный текст с форматированием?</p></blockquote></div><p>AHK точно не умеет!</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2010-10-22T12:47:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40734#p40734</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[WSH or AHK: Копирование выделенных ссылок]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=40733#p40733" />
			<content type="html"><![CDATA[<p>Умеют ли WSH или AHK копировать выделенный текст с форматированием?<br />Если да, — можно было бы приладить нижеследующий код, извлекающий ссылки из файла, к заявленной теме, — сохранил выделенный фрагмент с форматированием --&gt; извлёк его линки в буфер.</p><br /><br /><div class="codebox"><pre><code>; Пример №3: скрипт пытается извлечь все адреса FTP и HTTP из текстового или HTML файла.
FileSelectFile, SourceFile, 3,, Выберите текстовый или HTML файл для анализа.
if SourceFile =
    return ; В таком случае выйти.

SplitPath, SourceFile,, SourceFilePath,, SourceFileNoExt
DestFile = %SourceFilePath%\%SourceFileNoExt% Extracted Links.txt

IfExist, %DestFile%
{
    MsgBox, 4,, Переписать существующий файл со ссылками? Нажмите &quot;Нет&quot;, чтобы добавить.`n`nФайл: %DestFile%
    IfMsgBox, Yes
        FileDelete, %DestFile%
}

LinkCount = 0
Loop, read, %SourceFile%, %DestFile%
{
    URLSearchString = %A_LoopReadLine%
    Gosub, URLSearch
}
MsgBox %LinkCount% ссылок было найдено и записано в &quot;%DestFile%&quot;.
return

URLSearch:
; Это делается именно так потому, что некоторые URL содержат внутри себя другие URL:
StringGetPos, URLStart1, URLSearchString, http://
StringGetPos, URLStart2, URLSearchString, ftp://
StringGetPos, URLStart3, URLSearchString, www.

; Найти самую левую стартовую позицию:
URLStart = %URLStart1% ; Задать старт по умолчанию.
Loop
{
    ; Это улучшает производительность (по крайней мере в скрипте со многими переменными),
    ; если &quot;URLStart%A_Index%&quot; вычисляется только один раз:
    ArrayElement := URLStart%A_Index%
    if ArrayElement = ; Достигнут конец массива.
        break
    if ArrayElement = -1 ; Этот элемент дисквалифицируется.
        continue
    if URLStart = -1
        URLStart = %ArrayElement%
    else ; URLStart содержит допустимую позицию, поэтому сравнить её с ArrayElement.
    {
        if ArrayElement &lt;&gt; -1
            if ArrayElement &lt; %URLStart%
                URLStart = %ArrayElement%
    }
}

if URLStart = -1 ; URLSearchString не содержит URL.
    return

; Иначе извлечь этот URL:
StringTrimLeft, URL, URLSearchString, %URLStart% ; Опустить начальную/ненужную часть.
Loop, parse, URL, %A_Tab%%A_Space%&lt;&gt; ; Найти первый пробел, табуляцию или угловую скобку (если есть).
{
    URL = %A_LoopField%
    break ; т.е. совершается только одна итерация цикла, чтобы извлечь первое &quot;поле&quot;.
}
; Если цикл выше совершил ноль итераций, поскольку не было найдено ни одного конечного символа,
; оставить содержимое переменной URL нетронутым.

; Если URL оканчивается двойной кавычкой, удалить её. Сейчас для этого используется StringReplace,
; но имейте в виду, что двойные кавычки, видимо, разрешены внутри URL, так что это может их повредить:
StringReplace, URLCleansed, URL, &quot;,, All
FileAppend, %URLCleansed%`n
LinkCount += 1

; Нет ли в этой строке других URL:
StringLen, CharactersToOmit, URL
CharactersToOmit += %URLStart%
StringTrimLeft, URLSearchString, URLSearchString, %CharactersToOmit%
Gosub, URLSearch ; Рекурсивный вызов подпрограммой самой себя.
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[DD]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25263</uri>
			</author>
			<updated>2010-10-22T12:38:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=40733#p40733</id>
		</entry>
</feed>
