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 

Script Content Plugin
Goto page Previous  1, 2, 3, 4, 5 ... 14, 15, 16  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
dis8848



Joined: 06 Apr 2011
Posts: 10

Post (Separately) Posted: Wed Apr 06, 2011 14:14    Post subject: Reply with quote

Господа, может кто-то подскажет как реализовать следующую задачу.

Есть несколько файлов одного типа (например xls). В каждом из них есть ячейка "Абонентский номер" и ячейка с указанием значения, например, 0000000001 или 0000000002.

Требуется переименовать файлы следующим образом:
- если находит в содержимом значение 0000000001 - Пупкин Вася
- если находит в содержимом значение 0000000002 - Пупкина Маня и т.д.

Возможно задача нетривиальная, но пока не знаю как подступиться к ней, и возможно ли вообще?

Файлов много и их имена представляют собой бессмысленный набор символов.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Apr 26, 2011 15:19    Post subject: Reply with quote

dis8848
Я не понял.
Если значение берём из второй ячейки, то зачем ячейка "Абонентский номер"?
И откуда брать имена (Пупкин Вася, Пупкина Маня и т.п.)?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dis8848



Joined: 06 Apr 2011
Posts: 10

Post (Separately) Posted: Mon May 02, 2011 11:26    Post subject: Reply with quote

Возможно я корявенько написал, поясню по-иному.
Забудем о ячейках. Есть много файлов (отчеты оператора связи), каждый из которых в тексте содержит уникальный (и только один) номер SIM-карты. Сами файлы могут быть xls xml или html.
Файлы приходят с именами в виде бессмысленного набора символов. Соответствие номера SIM - ФИО заранее известно (пусть это будет таблица).
Нужно, чтобы искался текст в файле (тот самый номер SIM из заранее известного массива) и при нахождении соответствия - имя файла переименовывалось бы с абракадабры в значение, заданное в таблице.
Вот как-то так.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue May 03, 2011 10:03    Post subject: Reply with quote

dis8848
Ясно.
Только файлы "xls xml или html" имеют разный формат.
1. В xls-файле номер SIM-карты хранится в какой-то определённой ячейке с заранее известным номером?
2. В xml-файле известен обрамляющий тэг для номера SIM-карты?
3. Как в html-файле определить положение номера SIM-карты?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dis8848



Joined: 06 Apr 2011
Posts: 10

Post (Separately) Posted: Tue May 03, 2011 10:10    Post subject: Reply with quote

В html номер SIM всегда находится в 61 строке
Code:
<br />Номер SIM-карты: 00000000000000000000</td>

то есть сам номер всегда занимает 20 символов на 61 строке начиная с 24 знака.
По остальным - сейчас перед глазами нету образцов, но да - по xls там всегда тоже строго определенная ячейка.
--------------------------------------------------------
сейчас уточнил, в случае с xls это всегда ячейка с именем R5C3.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Wed May 04, 2011 15:21    Post subject: Reply with quote

dis8848
Т.к. для xml ты не ответил, пока так:
Code:
'====================================================
' Колонка Result возвращает "Номер SIM-карты"
'====================================================

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
Const ForReading  = 1
Const ReadingLine = 61

On Error Resume Next
Select Case LCase(FSO.GetExtensionName(filename))
  Case "html"
    content = FromHtml(filename)
  Case "xml"
    content = FromXml (filename)
  Case "xls"
    content = FromXls (filename)
  Case Else
    content = ""
End Select
If Err.Number <> 0 Then content = ""
On Error GoTo 0

Set FSO = Nothing

Function FromHtml(pFile)
  Dim i
  FromHtml = ""
  With FSO.OpenTextFile(pFile, ForReading)
    i = 1
    Do While Not .AtEndOfStream
      If i < ReadingLine Then
        .SkipLine
        i = i + 1
      Else
        FromHtml = Mid(.ReadLine, 24, 20)
        Exit Do
      End If
    Loop
    .Close
  End With
End Function

Function FromXml(pFile)
  FromXml = ""
  'Задача пока не формализована
'  With FSO.OpenTextFile(pFile, ForReading)
'    Do While Not .AtEndOfStream
'      .SkipLine
'    Loop
'    .Close
'  End With
End Function

Function FromXls(pFile)
  FromXls = ""
  With CreateObject("Excel.Application")
    .Workbooks.Open pFile, null, True
    On Error Resume Next
    FromXls = .Cells(5,3).Value
    On Error GoTo 0
    .Quit
  End With
End Function

Поскольку ты сам запостил вопрос в этой теме, я надеюсь, что ты знаешь, что с этим делать Wink
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dis8848



Joined: 06 Apr 2011
Posts: 10

Post (Separately) Posted: Thu May 05, 2011 11:29    Post subject: Reply with quote

Batya wrote:
...я надеюсь, что ты знаешь, что с этим делать Wink
спасибо большое! буду пробовать.

Добавлено спустя 2 часа 17 минут 4 секунды:

Попробовал с html, всё хорошо, немного только поправил значения:
Code:
FromHtml = Mid(.ReadLine, 34, 20)

Еще раз большое спасибо!
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Thu May 05, 2011 14:47    Post subject: Reply with quote

dis8848 wrote:
немного только поправил значения

Ну, как ты писал выше, так я и сделал Smile

Так что xml-то?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dis8848



Joined: 06 Apr 2011
Posts: 10

Post (Separately) Posted: Wed May 18, 2011 07:50    Post subject: Reply with quote

Batya wrote:
dis8848 wrote:
немного только поправил значения

Ну, как ты писал выше, так я и сделал Smile

Так что xml-то?
решили остановиться на html

правда основная задача осталась не решена - подстановка вместо номеров SIM имён пользователей.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Wed May 18, 2011 10:44    Post subject: Reply with quote

dis8848 wrote:
правда основная задача осталась не решена - подстановка вместо номеров SIM имён пользователей.

Ну, так ты ж не сказал точно, откуда брать ФИО? (Расположение файла, формат, номер начальной строки, позиция, номера ячеек, столбцов, строк и т.п.)
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Sun Jul 24, 2011 20:10    Post subject: Reply with quote

Подскажите почему не срабатывает код и выдаёт ошибку: "требуется объект"
Code:
Dim FSO, objFolder, objShellApp, objItem
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = CreateObject("Shell.Application").NameSpace(FSO.GetParentFolderName(FileName))
Set objItem = objFolder.ParseName(FSO.GetFileName(FileName))
Content = objFolder.GetDetailsOf(objItem, 25)

хотя если вставить начало FileName = "c:\TC Image\TOTALCMD.EXE"
то работает... может что-то не хватает
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Jul 25, 2011 09:40    Post subject: Reply with quote

Andrey_A
В script.ini должно быть:
Code:
LongName=1

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Mon Jul 25, 2011 09:55    Post subject: Reply with quote

Спасибо, заработало!
Back to top
View user's profile Send private message
dis8848



Joined: 06 Apr 2011
Posts: 10

Post (Separately) Posted: Wed Sep 21, 2011 14:29    Post subject: Reply with quote

Batya wrote:
Ну, так ты ж не сказал точно, откуда брать ФИО? (Расположение файла, формат, номер начальной строки, позиция, номера ячеек, столбцов, строк и т.п.)
Ф.И.О. должно браться из таблички, наподобие вот такой: http://www.mediafire.com/?hy0de9i5fjt505p
расположение файла можно пока условно принять за D:\work\
Если это хоть как-то облегчит задачу:
    Номер сим-карты в самом файле не повторяется (написан только 1 раз),
    Сам номер из раза в раз может располагаться на разных строках
    Сам номер обычно в коде идет после слов "Номер SIM-карты:"

Остановились на html, другие не будем пока рассматривать.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Tue Oct 04, 2011 11:06    Post subject: Reply with quote

dis8848
Я опять ничего не понял.
Если ты хочешь остановиться "на html, другие не будем пока рассматривать", то зачем привёл пример xls-файла?
Ты хочешь переименовывать файлы по их содержимому, или информация для переименования должна браться из какого-то стороннего файла?
_________________
Нет, я не сплю. Я просто медленно моргаю.
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 Previous  1, 2, 3, 4, 5 ... 14, 15, 16  Next
Page 4 of 16

 
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