1

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

Здравствуйте, как обычно я задаю свои вопросы. И сейчас подскажите, а лучше напишите исходный код.
Мне нужно узнать номер строки слова, которое я ищу. Вот пример:

tmp = 
(
Mars 4
Earth 8
Sun 2
Mom 6 
Car 1
Forest 0
Art 9
)
tmp1 = Sun
Loop, parse, tmp, `n
{
 IfInString, A_LoopField, %tmp1%
 {
  Clipboard := A_LoopField
  break
 }
}

В этом коде, у меня копирует всю строку со словом которое я ищу. На данный момент я ищу слово Sun. В буфере обмена будет "Sun 3". Мне нужно что бы в буфере обмена было число строки. Слово Sun находиться на 3 строке. Помогите пожалуйста, очень нужно.

2

Re: AHK: Номер строки в переменной

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

3

Re: AHK: Номер строки в переменной

serzh82saratov пишет:
Clipboard := A_Index

Спасибо и БОЛЬШОЕ спасибо за быстрый ответ.

4

Re: AHK: Номер строки в переменной

А можно сделать как нибудь точную проверку строки, что бы совпадала строка? Просто если так:

tmp = 
(
[b]Mars 4[/b]
Earth 8
Sun 2
Mom 6 
[b]Mar 1[/b]
Forest 0
Art 9
)

Я буду искать Ma, то 1 строка будет скопирована, а мне нужно что бы выбило ошибку, как бы нет такого.

5

Re: AHK: Номер строки в переменной


tmp = 
(
Mars 4
Earth 8
Sun 2
Mom 6 
Mar 1 
Forest 0
Art 9
)
tmp1 = Ma 
Loop, parse, tmp, `n
{
 If A_LoopField ~= "\b" tmp1 "\b"
 {
  MsgBox % A_Index
  break
 }
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6 (изменено: tuma4ok, 2014-06-27 16:28:28)

Re: AHK: Номер строки в переменной

Охх, Серж, ты мастер помог. И 3 вопрос.
Я знаю номер строки. Как мне вывести эту строку из tmp в tmp1
Например я ввожу 3 строку. И мне должно выбить Sun 2.

7

Re: AHK: Номер строки в переменной


row = 3

Loop, parse, tmp, `n
{
    If A_Index = %row%
    {
        MsgBox % A_LoopField
        break
    }
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Номер строки в переменной

Серж, когда я делал регистрацию, появилась проблема.

tmp = 
(
Mars 4
Earth 8
Sun 2
Mom 6 
Mar 1 
Forest 0
Art 9
)
tmp1 = Ma 
Loop, parse, tmp, `n
{
 If A_LoopField ~= "\b" tmp1 "\b"
 {
  MsgBox % A_Index
  break
 }
}

Мне нужно что бы Mars и maRs или даже MarS считалось за одно значение. Регистр не должен учитываться. Помоги пожалуйста.

9 (изменено: Irbis, 2014-06-27 16:56:42)

Re: AHK: Номер строки в переменной

Я не Серж, но... (с)

tmp = 
(
Mars 4
Earth 8
Sun 2
Mom 6 
Mar 1 
Forest 0
Art 9
)

MsgBox % Line(tmp,3)
Return

Line(var, n)
{
   Return SubStr(var, a:=InStr(var,"`n",,,n-1)+1, InStr(var,"`n",,,n)-a)
}

По поводу регистра:


...

If A_LoopField ~= "i)\b" tmp1 "\b" 

...
+ off

Ох, чую, вот-вот грядет онлайн чат, который взорвет эти ваши интернеты

10 (изменено: serzh82saratov, 2014-06-27 18:27:03)

Re: AHK: Номер строки в переменной

Irbis


tmp = 
(
Mars 4
Earth 8
Sun 2
Mom 6 
Mar 1 
Forest 0
Art 9
)

MsgBox % Line(tmp,7)
Return

Line(var, n)
{
   Return SubStr(var, a:=InStr(var,"`n",,,n-1)+1, InStr(var,"`n",,,n)-a)
}

У меня тоже был такой вариант, но возня с последней строкой того не стоит.
---
ап:
Да и вообще проще всего сделать так:

MsgBox % StrSplit(tmp,"`n")[7]

---

+ off

Ох, чую, вот-вот грядет онлайн чат, который взорвет эти ваши интернеты

Думаю, что наши с тобой имена будут увековечены как соавторов.

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