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: Как сортировать папки по "задуманным мною" критериям? 
Author Message
Batya



PostPosted: Tue May 22, 2007 10:13    Post subject: Reply with quote

16. В папке %COMMANDER_PATH%\Utils\WHS создаем файл EditCsv.vbs:
Code:
'=====================================================================
' Редактирование csv-файла (имя которого передано первым параметром)

' Для вызова скрипта по кнопке (команде меню) TC
'   в параметрах указать:
' %P%N "%PCustomers.csv"
'=====================================================================

Option Explicit
If WScript.Arguments.Count < 2 Then
  MsgBox "Не верно указаны параметры!", vbOKOnly + vbCritical, "Внимание!"
  Wscript.Quit
End If

Dim FSO, OTF, CustomFile, Rec, NewText, NewRec, i, Arr, Cell, _
    Header, HeaderArr, Fold, FoldName
Set FSO = CreateObject("Scripting.FileSystemObject")
Fold    = WScript.Arguments(0)
'Проверяем, что первый параметр - папка
If Not FSO.FolderExists(Fold) Then
  MsgBox "Первым параметром необходимо указать папку." & vbNewLine & _
    "Папка " & Fold & " не существует!", _
    vbOKOnly + vbCritical, "Внимание!"
  Set FSO = Nothing
  WScript.Quit
End If
'Проверяем наличие csv-файла
CustomFile = WScript.Arguments(1)
If Not FSO.FileExists(CustomFile) Then
  MsgBox "Файл " & CustomFile & " не существует!", _
    vbOKOnly + vbCritical, "Внимание!"
  Set FSO = Nothing
  WScript.Quit
End If

'Откроем csv-файл для чтения
Set OTF = FSO.OpenTextFile(CustomFile, 1, False)
'Читаем заголовки
Header    = OTF.ReadLine
HeaderArr = Split(Header, ";", -1, 1)
'Имя папки - фамилия заказчика
FoldName = FSO.GetFolder(Fold).Name
'Читаем остальные строки
Do While Not OTF.AtEndOfStream
  Rec = OTF.ReadLine
  NewRec = ""
  If Len(Rec) > 0 Then
    Arr = Split(Rec, ";", -1, 1)
    i   = 0
    If LCase(Arr(0)) = LCase(FoldName) Then
      For Each Cell in Arr
        If i > 0 Then
          Cell = InputBox("Введите значение """ & HeaderArr(i) & _
            """ для записи с именем """ & Arr(0) & """:", _
            Arr(0), Arr(i))
        End If
        NewRec = NewRec & ";" & Cell
        i = i + 1
      Next
      NewRec = Mid(NewRec, 2)
    Else
      NewRec = Rec
    End If
  End If
  NewText = NewText & vbNewLine & NewRec
Loop
OTF.Close()
'Добавляем заголовки
NewText = Header & NewText
'Откроем csv-файл для записи
Set OTF = FSO.OpenTextFile(CustomFile, 2, False)
OTF.Write NewText
OTF.Close()

Set OTF = Nothing
Set FSO = Nothing
WScript.Quit

17. На созданной в п.1 панели добавляем кнопку:
Code:

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\EditCsv.vbs
%P%N "%PCustomers.csv" %L
shell32.dll,114
Редактирование информации о заказчике


-1

18. Для редактирования информации становимся на нужную папку и нажимаем созданную в п.17 кнопку. Внимание! Если при вводе нажать кнопку "Отмена", то запишется пустое значение.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group