Страница 6 из 6

Добавлено: Ср ноя 15, 2017 18:35
Flasher
Lisabon
Логика вставки верная. Но скрипт на строку увеличивался. Надо обновиться и переделать.

Добавлено: Ср ноя 15, 2017 18:51
Lisabon
Надо обновиться
Обновил скрипт и подправил, получил вот такое:

Код: Выделить всё

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

Добавлено: Ср ноя 15, 2017 19:05
Flasher
Хм. А если так?:

Код: Выделить всё

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

Добавлено: Ср ноя 15, 2017 19:50
Lisabon
Flasher
А если так?
Скрипт работает. Ошибок и проблем пока не наблюдаю.

Добавлено: Ср ноя 15, 2017 20:01
Flasher
Lisabon
Эврика. :) А с длинными путями как?

Добавлено: Ср ноя 15, 2017 20:21
Lisabon
Flasher

Код: Выделить всё

А с длинными путями как?
Нормально.

Добавлено: Ср ноя 15, 2017 20:22
Flasher
Lisabon
Хорошо. Поздравляю.