Здравствуйте. Существует необходимость объединения нескольких (более двух) текстовых файлов с ссылками (в них присутствуют знаки вида ?,&,#,/,=). Необходимо произвести слияние текстовых файлов в один, - но не так, как это делает texpipe (поочередное добавление всех ссылок из каждого файла), а так, чтобы каждая строчка из каждого текстового файла бралась поочередно. пример:
1.txt-
Число строк в каждом из текстовых файлов разное, и может каждый раз меняться(имеется ввиду- для каждого конкретного задания может быть разное количество строк) . (по идеи, если строки в каком-либо файле заканчиваются, скрипт должен продолжить сортировку- слияние из следующих выделенных файлов)
"Пока Чубайсы у руля науки: - Мы будем долго пачкать нано-брюки"
shveicar писал(а):имеется ввиду- для каждого конкретного задания может быть разное количество строк
Разное кол-во строк в каждом из файлов? Я тогда не понимаю смысл такого извращения. Ну, останутся куски при достижении минимума, и как предлагается их отсортировывать, в соотвествии с чем?
Flasher писал(а):Ну, останутся куски при достижении минимума, и как предлагается их отсортировывать, в соотвествии с чем?
- когда останется всего один файл, то строки из него, могут быть добавлены без сортировки, их всегда можно отделить и впоследствии повторно пересортировать.
Я тогда не понимаю смысл такого извращения
Смысл такого действия прост, существует на некоторых сайтах система защиты, которая не позволяет выкачивать контент, -если алгоритм закачки не соответствует определенной логике. Изменив последовательность ссылок,- возможно автоматизировать данный процесс. Спасибо. Надеюсь на понимание.
"Пока Чубайсы у руля науки: - Мы будем долго пачкать нано-брюки"
shveicar писал(а):- когда останется всего один файл, то строки из него, могут быть добавлены без сортировки, их всегда можно отделить и впоследствии повторно пересортировать.
При чём тут один файл? Я пишу про разное число строк в выбранных файлах. Можно сопоставлять строки, когда их одинаковое число.
shveicar писал(а):существует на некоторых сайтах система защиты, которая не позволяет выкачивать контент...
Не понял, как это относится к оставшимся текстовым кускам? И не очень понял, зачем нужны эти файлы? Почему нельзя просто формировать списки нескачиваемых файлов на автомате?
Flasher писал(а):Можно сопоставлять строки, когда их одинаковое число
Хорошо, пусть во всех объединяемых файлах- будет одинаковое число строк, если это упрощает задачу... (с помощью textpipe можно произвести предварительное выравнивание).
Не понял, как это относится к оставшимся текстовым кускам? И не очень понял, зачем нужны эти файлы? Почему нельзя просто формировать списки нескачиваемых файлов на автомате?
В том то и дело что не все так просто, некоторые адреса отсеянyые после закачки offline explorerom (он их почемуто не берет, так как используется переадресация (типа &path=/) с проверкой через safebrowsing-cache.google.com объединяются с другими адресами (имитирующими загрузку html браузером) и после объединения передаются в scrapbook в firefoxe. Просто, в ручную перемешивать ссылки (особенно если их много) - одуреть можно. Да и для более сложных случаев при формировании списка для iMacros такой вариант очень - бы пригодился.
"Пока Чубайсы у руля науки: - Мы будем долго пачкать нано-брюки"
' Построчное склеивание текстовых файлов
' Параметры: <список файлов> <путь к файлу-получателю>
' Пример: %L "%TСписок_отсортированных_ссылок.txt"
'======================================================
With CreateObject("Scripting.FileSystemObject")
Set TF = .OpenTextFile(WScript.Arguments(0), 1)
On Error Resume Next
For Each M in Split(TF.ReadAll, vbNewLine)
A = Ubound(Split(.OpenTextFile(M).ReadAll, vbNewLine))
If Max < A Then Max = A
Next
TF.Close
n = 0
Set List = .OpenTextFile(WScript.Arguments(1), 8, True)
Do While n <= Max
Set TF = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not TF.AtEndOfStream
F = TF.ReadLine
If F > vbNullString Then
If .FileExists(F) Then
L = Split(.OpenTextFile(F).ReadAll, vbNewLine)
If Trim(L(n)) <> "" Then List.WriteLine L(n)
End If
End If
Loop
TF.Close
n = n + 1
Loop
List.Close
End With
Да это всего лишь пример названия файла. Хоть "дедяпетясъелмедведя.txt".
И, кстати, сортировать можно по разным критериям. Возьми те же колонки контентных плагинов.
Большое Спасибо - Flasher
Как всегда выручаешь, жаль что сначала вроде-бы простое действие, показалось таким сложным... Ну, списываю на Моё "запутанное" объяснение... Вобщем, то - что нужно, Респект!
P.s
Flasher писал(а):И, кстати, сортировать можно по разным критериям
это Вы об этой строчке? n = n + 1
"Пока Чубайсы у руля науки: - Мы будем долго пачкать нано-брюки"