Batya

|
Posted: Tue May 22, 2007 10:13 Post subject: |
|
|
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 кнопку. Внимание! Если при вводе нажать кнопку "Отмена", то запишется пустое значение. |
|