Добавлено: Ср ноя 15, 2017 18:35
Lisabon
Логика вставки верная. Но скрипт на строку увеличивался. Надо обновиться и переделать.
Логика вставки верная. Но скрипт на строку увеличивался. Надо обновиться и переделать.
Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
Обновил скрипт и подправил, получил вот такое:Надо обновиться
Код: Выделить всё
With CreateObject("SAPI.SpFileStream")
If Dic.Exists(FP) And FP <> List(0) Then _
.Open FP, 2 : .Read FMem, Fl.Size :_
.Close : Fl.OpenAsTextStream(2).Close
For i = N To Num - 1
Fi = List(i) : C = 0 : If Left(Fi, 1) = "\" Then C = 2
If FP = Fi Then Buff = FMem : FMem = "" Else _
.Open Fi, C : .Read Buff, Dic.Item(Fi) : .Close
With CreateObject("SAPI.SpFileStream")
.Open FP, 1 : .Seek Fl.Size : .Write Buff : Buff = "" : .Close
End With
Next
End WithКод: Выделить всё
Сценарий: D:\Program\Total_Commander\Scripts\JoinBinFiles.vbs
Строка: 73
Символ: 5
Ошибка: 0x80045025
Код: 80045025
Источник: (null)Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Scripts\JoinBinFiles.vbs
%WL "%P" 2 %N
C:\Windows\System32\WScript.exe,2
JoinBinFiles
-1
Код: Выделить всё
With CreateObject("SAPI.SpFileStream")
If Dic.Exists(FP) And FP <> List(0) Then _
.Open FP, 2 : .Read FMem, Fl.Size :_
.Close : Fl.OpenAsTextStream(2).Close
End With
For i = N To Num - 1
Fi = List(i) : C = 0 : If Left(Fi, 1) = "\" Then C = 2
With CreateObject("SAPI.SpFileStream")
If FP = Fi Then Buff = FMem : FMem = "" Else _
.Open Fi, C : .Read Buff, Dic.Item(Fi) : .Close
End With
With CreateObject("SAPI.SpFileStream")
.Open FP, 1 : .Seek Fl.Size : .Write Buff : Buff = "" : .Close
End With
NextСкрипт работает. Ошибок и проблем пока не наблюдаю.А если так?
Код: Выделить всё
А с длинными путями как?