Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Автонумерация в конце строки текстового файла
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Mon May 30, 2011 19:41    Post subject: Автонумерация в конце строки текстового файла Reply with quote

Здравствуйте.
Столкнулся с такой проблемой - есть текстовой файл со ссылкой
(http://адрес.ru/) необходимо создать список ссылок вида
Code:
http://адрес.ru/1/
http://адрес.ru/2/
http://адрес.ru/3/
и т.д до 250 ссылок(желательно каждая ссылка на одной строке) Можно ли средствами total commander реализовать данную функцию или же нужно использовать спец программы? Если кто сталкивался с подобной проблемой прошу совета. Заранее благодарен.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Mon May 30, 2011 20:11    Post subject: Reply with quote

ТС здесь в любом случае ни при чем: такие вещи делаются скриптами или батниками (которые сами суть скрипты). По батникам у нас специализируется Tol!k, сиди жди его. Такую простую задачу я бы и сам осилил, но он сделает это явно быстрее и качественнее.
Если бы я был на его месте, я бы задал следующие вопросы:
1) В первом файле только адрес и больше ничего?
2) Что значит "создать список"? Где создать? На экране? В буфере? В файле? Если последнее, то как он будет называться и где располагаться?
3) А почему ты не хочешь использовать для этого средства Экселя? Займет тридцать секунд. Импорт, нумерация, экспорт.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Mon May 30, 2011 20:33    Post subject: Reply with quote

Quote:
1) В первом файле только адрес и больше ничего?

конечно только адресс
Quote:
2) Что значит "создать список"? Где создать? На экране? В буфере? В файле? Если последнее, то как он будет называться и где располагаться?
Прошу прощения что сразу не пояснил-Естественно список создается в текстовом файле. Называться он будет например "список" (не принципиально) создаваться он будет в рабочем окне (или если есть возможность по выбору -другая панель)
Quote:
3) А почему ты не хочешь использовать для этого средства Экселя? Займет тридцать секунд. Импорт, нумерация, экспорт.
Можно конечно попробовать и xl но если есть возможность упростить с помощью скрипта, то было бы удобнее - например создал кнопку - изменил например ссылку и создал нужное количество адресов.
Я для начала сделал так - Создал в рабочей директории с помощью скрипта 250 пустых папок, переименовал их, скопировал имена в буфер и создал текстовой файл с именами в списке. ну а далее осталось только добавить одинаковые символы и все. но как-то мне кажется это не совсем удобно.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon May 30, 2011 21:29    Post subject: Reply with quote

Code:
@echo off &chcp 1251 >nul
rem Пример параметров для ТС: %P%N 250 "%T"
if "%~2"=="" (echo Use: %0 address.txt 100500 &pause &goto :eof)
set /p addr=<%1
cd.>"%~3%~n1.%~2.txt"
for /l %%c in (1,1,%2) do (>>"%~3%~n1.%~2.txt" echo:%addr%%%c/)
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Tue May 31, 2011 00:57    Post subject: Reply with quote

Спасибо Tol!k - батник работает!

Добавлено спустя 11 минут:

Да и кстати. какие параметры должны быть для создания такого же файла в той же директории что и файл со ссылкой? Пробую разные варианты все равно создает в противоположной панели
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue May 31, 2011 01:18    Post subject: Reply with quote

"%T" поменять на "%P". Cм. справку.

зы: поспешил я тут, видимо, с матчастью.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 16, 2011 15:36    Post subject: Reply with quote

Tol!k - а что нужно изменить в батнике, что-бы номера создавалить с символом / перед номером То-есть, Батник отлично работает когда ссылка имеет вид
Code:
http://адресс/6/movies/
а когда адресс заканчивается без наклонной черты,
Code:
http://адресс/6/movies
то номер присоединяется к букве? Пытался менять значения методом тыка, что-то не выходит.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Jul 16, 2011 18:00    Post subject: Reply with quote

for /l %%c in (1,1,%2) do (>>"%~3%~n1.%~2.txt" echo:%addr%/%%c/)

%addr% — адрес
%%c — счётчик
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jul 16, 2011 18:14    Post subject: Reply with quote

shveicar
Code:
'  Создание списка c добавлением строк из строки
'  выделенного файла по схеме: <строка>/<№ счётчика>/
'  Параметры: %V "путь к создаваемому файлу" <первый № счётчика> <число строк>
'  Пример: %V "%PCписок_для_"%N 1 250
'=======================================================
With CreateObject("Scripting.FileSystemObject")
  Set File = .OpenTextFile(WScript.Arguments(0),1)
  Set List = .OpenTextFile(WScript.Arguments(1),8,True)
End With
Str = File.ReadLine
For i=WScript.Arguments(2) to Abs(WScript.Arguments(2))+Abs(WScript.Arguments(3))-1
  If Right(Str,1)="/" Then
    List.WriteLine Str & i & "/"
  Else
    List.WriteLine Str & "/" & i & "/"
  End If
Next
List.Close
WScript.Quit
Могу, в принципе, для удобства добавить окна с вопросами, с чего начинать и сколько строк создавать. Может пригодиться в некоторых ситуациях.

Last edited by Flasher on Sun Jul 17, 2011 00:06; edited 2 times in total
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 16, 2011 19:19    Post subject: Reply with quote

Добрый вечер. Спасибо за ответ. Пытаюсь запустить скрипт что-то не идет. строка 7 символ 3 путь не найден. код кнопки
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\html\sozdanie_faila_dobavlenie_strok.vbs
%V %PCписок_для_%N 1 250
C:\WINDOWS\System32\WScript.exe
sozdanie_faila_dobavlenie_strok

0
-1
пробовал также полный путь в ковычках, и с расширением .txt- тот же результат. И конечно было бы удобнее если скрипт был с окнами(так, как количество строк в каждом случае может быть разное), а менять каждый раз кнопку не совсем удобно. Спасибо.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jul 16, 2011 19:33    Post subject: Reply with quote

shveicar
TC когда обновлялся последний раз? Тот же случай. %V меняем на %P%N.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Jul 16, 2011 19:43    Post subject: Reply with quote

Quote:
Пример: %V %PCписок_для_%N 1 250

Не будет работать с пробелами в путях

shveicar wrote:
было бы удобнее если скрипт был с окнами(так, как количество строк в каждом случае может быть разное), а менять каждый раз кнопку не совсем удобно.

Параметры
Code:
? %P%N "%PCписок_для_%O.%E" 1 250
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 16, 2011 19:43    Post subject: Reply with quote

Спасибо- Flasher, с %P%N все заработало. А TС у меня 7.55 portabl - менять пока не собираюсь.

Last edited by shveicar on Sat Jul 16, 2011 20:56; edited 3 times in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jul 16, 2011 19:52    Post subject: Reply with quote

С окнами:
Code:
'  Создание списка c добавлением строк из строки
'  выделенного файла по схеме: <строка>/<№ счётчика>/
'  Параметры: %P%N "<путь к создаваемому файлу>"
'  Пример: %P%N "%PCписок_для_"%N
'=======================================================
With CreateObject("Scripting.FileSystemObject")
  Set File = .OpenTextFile(WScript.Arguments(0),1)
  Set List = .OpenTextFile(WScript.Arguments(1),8,True)
End With
N = InputBox("Введите первый номер счётчика", "Добавление строк в список")
Count = InputBox("Введите число строк", "Добавление строк в список")
If Len(N) = 0 Or Len(Count) = 0 Then WScript.Quit
Str = File.ReadLine
For i = N to Abs(N)+Abs(Count)-1
  If Right(Str,1) = "/" Then
    List.WriteLine Str & i & "/"
  Else
    List.WriteLine Str & "/" & i & "/"
  End If
Next
List.Close
WScript.Quit


Добавлено спустя 2 минуты:

Tol!k wrote:
Не будет работать с пробелами в путях
В папках да, но не в файлах. Исправил.

Last edited by Flasher on Sun Jul 17, 2011 00:04; edited 4 times in total
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Sat Jul 16, 2011 19:54    Post subject: Reply with quote

Вот это вещь! Огромное спасибо!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group