Автор Тема: [Данные, строки] Поиск в буфере обмена ключей  (Прочитано 498 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Есть код для поиска в буфере определенной ссылки из этой темы http://autoit-script.ru/index.php?topic=1603.0
Код: AutoIt [Выделить]
$sOldClip = ClipGet()

While 1
    $sCurrentClip = ClipGet()

    If $sOldClip <> $sCurrentClip Then
        $sOldClip = StringRegExpReplace($sCurrentClip, '^http://.*=(\d+)$', '\JOPA')
        ClipPut($sOldClip)
    EndIf

    Sleep(100)
WEnd
 


Мне нужно в место http адреса находить ключ, который будет в формате, первая буква K обязательная и остальные 16 символов, ключи будут разные, например KH74SDUKYS73AMBF. Как поставить определение ключа по первой букве "К" и остальное по количеству символов?
« Последнее редактирование: Июнь 06, 2018, 18:23:25 от qwertypower »

Русское сообщество AutoIt

[Данные, строки] Поиск в буфере обмена ключей
« Отправлен: Июнь 06, 2018, 17:01:35 »

Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Данные, строки] Найти в буфере
« Ответ #1, Отправлен: Июнь 06, 2018, 17:54:52 »
Как в таком скрипте определить определенную фразу по первой букве в этой строчке?
Полный код:
Код: AutoIt [Выделить]
$sOldClip = StringRegExpReplace($sCurrentClip, '^http://.*=(\d+)$'
 


Как вместо
Код: AutoIt [Выделить]
'^http://.*=(\d+)$'

подставить другое значение для определения скопированного текста, начинающего с первой буквы "K" и в количестве 22 буквы? Спасибо


Добавлено: Июнь 06, 2018, 18:03:59
Такой вариант не работает:
Код: AutoIt [Выделить]
$sOldClip = StringRegExpReplace($sCurrentClip, '^K.*=*********************'
 

« Последнее редактирование: Июнь 06, 2018, 18:03:59 от qwertypower, Причина: Объединение сообщений »

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 201
  • Репутация: 18
  • Пол: Мужской
    • Награды
Вы можете заполнить первый пост и написать, что вам нужно?!

Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Вы можете заполнить первый пост и написать, что вам нужно?!
Извините, все исправил, вопрос в первом посте

Русское сообщество AutoIt

Re: [Данные, строки] Поиск в буфере обмена ключей
« Ответ #3 Отправлен: Июнь 06, 2018, 18:24:30 »

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 201
  • Репутация: 18
  • Пол: Мужской
    • Награды
Кажется понял, но не факт...
Код: AutoIt [Выделить]
 $sOldClip = StringRegExpReplace($sCurrentClip, 'http(.+?)\R', '\JOPA')

У вас есть список ключей в *.txt файле?

а лучше напишите, что именно вам надо.
т.е. примерно так: У меня есть буфер обмена, который содержит то-то (под спойлером), нужно заменить вот эту часть на этот ключ (выделить нужное), ключ берется от тудого(опционально).

Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Можете взять этот ключ KH74SDUKYS73AMBF.

Суть такова, ключи могут быть разные, мне нужно что бы в буфере обмена искался текст по первой букве "К" и остальные неизвестных 15 символов, такие как в этом ключе KH74SDUKYS73AMBF

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 201
  • Репутация: 18
  • Пол: Мужской
    • Награды
Код: AutoIt [Выделить]
$sOldClip = StringRegExpReplace($sCurrentClip, 'K(.+?)\R|\h', 'key')


Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
$sOldClip = StringRegExpReplace($sCurrentClip, 'K(.+?)\R|\h', 'key')


Можно именно чтобы в слове было 15 символов, помимо буквы "К"?  Как то обозначать что длинный ключ из первой буквы "К" и 15 символов?

Русское сообщество AutoIt

Re: [Данные, строки] Поиск в буфере обмена ключей
« Ответ #7 Отправлен: Июнь 06, 2018, 20:08:09 »

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 201
  • Репутация: 18
  • Пол: Мужской
    • Награды
Код: AutoIt [Выделить]
$sOldClip = StringRegExpReplace($sCurrentClip, 'K.{15}', 'key')


Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Спасибо, а можно использовать в коде сразу два параметра? Один, который вы сделали и еще один, например на ключ, который начинается на букву S{15}? И еще такая проблема, при запущенной скрипте любые файлы копируются только со второго раза, это можно как то исправить?
« Последнее редактирование: Июнь 07, 2018, 00:32:36 от qwertypower »

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1397
  • Репутация: 204
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
mr.Gbabak
(нажмите для показа/скрытия)

Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 201
  • Репутация: 18
  • Пол: Мужской
    • Награды
Под ваш шаблон подходит ключ "васяKH74SDUKYS73AMBFпупкин"
хм, у меня правильно отображается, именно с К и 15 символов...
использовать в коде сразу два параметра? ...... это можно как то исправить?
Конечно можно, но как написал Alofa сложно, что то подсказать, если не понимаешь суть. Мне не понятно какой скрипт запущен, какие файлы и что у вас в скрипте твориться.

Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Я имел ввиду, что бы было несколько функций поиска на разные коды, вот пример кода

Код: AutoIt [Выделить]
$sOldClip = ClipGet()

While 1
    $sCurrentClip = ClipGet()

    If $sOldClip <> $sCurrentClip Then
        $sOldClip = StringRegExpReplace($sCurrentClip, 'K.{15}', 'key')
        ClipPut($sOldClip)
    EndIf

    If $sOldClip <> $sCurrentClip Then
        $sOldClip = StringRegExpReplace($sCurrentClip, 'B.{12}', 'key')
        ClipPut($sOldClip)
    EndIf

    If $sOldClip <> $sCurrentClip Then
        $sOldClip = StringRegExpReplace($sCurrentClip, 'R.{11}', 'key')
        ClipPut($sOldClip)
    EndIf

    Sleep(100)
WEnd
 


Оффлайн mr.Gbabak [?]

  • Новичок
  • *
  • Сообщений: 201
  • Репутация: 18
  • Пол: Мужской
    • Награды
не будет работать. Вернее будет, но не так как вам хочется.
К примеру вам нужно найти ключ начинающийся на R, но в предыдущем ключе есть K, то скрипт найдет первым букву K...и все изменит и соответственно получится ерунда.
хотя, если у вас в буфере содержится только ключ и ни чего больше? И нужно определить его принадлежность?
Или html страничка какого нибудь сайта?
(Еще раз вам предлагаю выложить буфер обмена)

Оффлайн qwertypower [?]

  • Новичок
  • *
  • Сообщений: 12

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Если я скопирую ключ начинающийся на "К" и плюс 15 символов, то при вставке будет слово как в коде "key", а если мне понадобятся другие ключи начинающие на другие буквы, как в коде привел пример, например ключ начинающийся на "B" из 12 символов, то я просто копирую этот ключ(который начинается на B) и вставляться соответственно будет например "key2" итак далее. Или вы имеете ввиду, что пока буфер не очистить, там будет путаница?

Русское сообщество AutoIt

Re: [Данные, строки] Поиск в буфере обмена ключей
« Ответ #14 Отправлен: Июнь 07, 2018, 21:21:01 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3395 Просмотров
Последний ответ Сентябрь 28, 2009, 14:08:53
от korvindeson
1 Ответов
2203 Просмотров
Последний ответ Февраль 16, 2011, 17:01:21
от Suppir
2 Ответов
2003 Просмотров
Последний ответ Апрель 29, 2011, 13:02:59
от zlo-kazan
3 Ответов
5014 Просмотров
Последний ответ Январь 30, 2012, 23:48:19
от nu3dell
1 Ответов
1598 Просмотров
Последний ответ Июнь 15, 2013, 11:59:02
от sngr
2 Ответов
1024 Просмотров
Последний ответ Март 13, 2015, 20:04:09
от noob
2 Ответов
1749 Просмотров
Последний ответ Сентябрь 23, 2015, 07:59:45
от madmasles
1 Ответов
729 Просмотров
Последний ответ Сентябрь 22, 2015, 20:59:42
от edyapd
2 Ответов
265 Просмотров
Последний ответ Январь 25, 2018, 16:14:38
от yl3d
5 Ответов
174 Просмотров
Последний ответ Июнь 11, 2018, 14:49:07
от perven1