1 (изменено: Ivan Born, 2014-09-12 23:21:20)

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

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

Есть 2 .csv файла, допустим input.csv и output.csv. Первый содержит строки типа:

20140911094441,,kadede@hotmail.com,z67jCp7p,Inever,Inever432,Liam,Norton,Leonard,27,Tom Kelly rd,Dublin,2,14780634,13,2,1991,430685,81.171.97.143

Нужно получить свой внешний IP и выполнить поиск этого адреса в файле input.csv, затем скопировать всю строку содержащую найденный IP в output.csv или показать сообщение о том, что такого адреса не найдено.

Я пришел к этому коду, но, к сожалению, после запуска скрипта ничего не происходит.


incsv := "C:\Find_IP\input.csv"
outcsv := "C:\Find_IP\output.csv"

FileDelete, %outcsv%
ip := GetIP()
Loop, Read, %incsv%, %outcsv%
{
    IfInString, A_LoopReadLine, %ip%, FileAppend, %A_LoopReadLine%`n
}

GetIP() 
{
    URLDownloadToFile, http://www.netikus.net/show_ip.html, file
    FileRead, IP, file
    FileDelete, file
    Return IP
}

2

Re: AHK: Копирование строки с найденным текстом

Вопрос закрыт, спасибо serzh82saratov


incsv := "C:\Find_IP\input.csv"
outcsv := "C:\Find_IP\output.csv"

FileDelete, %outcsv%
ip := GetIP()
Loop, Read, %incsv%
{
    IfInString, A_LoopReadLine, %ip%
    FileAppend, %A_LoopReadLine%, %outcsv%
}
Return

GetIP() 
{
    URLDownloadToFile, http://www.netikus.net/show_ip.html, file
    FileRead, IP, file
    FileDelete, file
    Return IP
}

На моей системе после удаления файла нужно было дописать небольшую задержку для корректной работы скрипта, но Сергей предложил более изящное решение:


#SingleInstance Force    
#NoEnv

incsv := "C:\Find_IP\input.csv"
outcsv := "C:\Find_IP\output.csv"

ip := GetIP()

Loop, Read, %incsv%
{    
  IfInString, A_LoopReadLine, %ip%  
  File := FileOpen(outcsv, "w"), File.Length := 0, File.Write(A_LoopReadLine)
}
File.Close()
Return
 
GetIP() 
{
    URLDownloadToFile, http://www.netikus.net/show_ip.html, file
    FileRead, IP, file
    FileDelete, file
    Return IP
}