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 

Single Post  Topic: Script Content Plugin 
Author Message
Batya



PostPosted: Tue Oct 04, 2011 17:53    Post subject: Reply with quote

dis8848
Code:
'====================================================
' Колонка Result  возвращает "Номер Sim-карты"
' Колонка Result1 возвращает имя владельца Sim-карты
'====================================================

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

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 = ""
If content <> "" Then content1 = GetName(content)
If Err.Number <> 0 Then content1 = ""
On Error GoTo 0

Set FSO = Nothing

Function FromHtml(pFile)
  Dim P, P1, Text
  Const Str = "Номер SIM-карты:"
  FromHtml = ""
  With FSO.OpenTextFile(pFile, ForReading)
    Text = .ReadAll
    .Close
  End With
  P = InStr(1, Text, Str, 1)
    FromHtml = P
  If P > 0 Then
    P1 = InStr(P + Len(Str), Text, "<")
    If P1 > 0 Then FromHtml = Trim(Mid(Text, P + Len(Str), P1 - P - Len(Str)))
  End If
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

Function GetName(pSim)
  Const NamesFile = "D:\work\номера_сим-карт.xls"
  Const ColSim    = 3 'Номер столбца с номерами
  Const ColName   = 2 'Номер столбца с именами
  Const Row       = 2 'Номер начальной строки
  GetName = ""
  Dim i, Sim
  i = Row
  With CreateObject("Excel.Application")
    .Workbooks.Open NamesFile, null, True
    On Error Resume Next
    Do
      Sim = .Cells(i,ColSim).Value
      If Sim = pSim Then
        GetName = .Cells(i,ColName).Value
        Exit Do
      End If
      i = i + 1
      If Err.Number <> 0 Then Exit Do
    Loop Until Sim = ""
    On Error GoTo 0
    .Quit
  End With
End Function

Исправь, при необходимости, параметры xls-файла в функции GetName (в конце скрипта).
Используй инструмент группового переименования (ИГП) по колонке Result1.
_________________
Нет, я не сплю. Я просто медленно моргаю.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group