• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

VBS - program gubi strony

VPS Starter Arubacloud
0 głosów
191 wizyt
pytanie zadane 25 marca 2016 w Visual Basic przez Gazunek Nowicjusz (160 p.)

Czesc,

mam skrypt ktory pomaga mi w pracy. Za pomoca programu Irfan dzieli pliki .tif na jednostronicowe po czym laczy je w jeden wielki .tif porozdzielany separatorami. Problem jednak w tym, ze przy wiekszej ilosci plikow gubi mi niektore strony. Zauwazylem ze gdy plik wynikowy na polskie znaki skrypt generuje mi dwa pliki wynikowe. Jeden wlasciwy a drugi ze stronami ktore uciekly.

 

dir_temp = "plikiTmp"
file_separator = InputBox("Plik separatora:", "IRFAN_APP", "C:\Users\zyskg\Desktop\Separatory\serar_bols.tif")
file_done = InputBox("Plik wynikowy:", "IRFAN_APP", "C:\Users\zyskg\Desktop\" & replace(date , "-", "_") & "_BOLS.tif")
file_ini = "\\vfs01\profiles\zyskg\My Documents\Archiwum\raporty\"
file_counter = 0

Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")

if fso.FolderExists(dir_temp) then
   fso.DeleteFolder dir_temp, true
   fso.CreateFolder(dir_temp)
else
   fso.CreateFolder(dir_temp)
end if

dir_curr = fso.GetAbsolutePathName(".") 
If Right(dir_curr, 1) <> "\" Then dir_curr = dir_curr & "\"

'główna pętla, przeszukuje katalog w którym jest plik IRFAN.vbs w poszukiwaniu plikow TIF
Set fld = fso.GetFolder(dir_curr)
For Each fil In fld.Files
   if LCase(Right(fil.Name, 3)) = "tif" or LCase(Right(fil.Name, 4)) = "tiff" then
      file_counter = file_counter + 1

      'rozpakowanie znalezionego pliku tif na jednostronicowe pliki
      IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & dir_curr & fil.Name & "/extract=(" & dir_curr & dir_temp & "\" & " ,tif)/killmesoftly"
      Set s01 = WshShell.Exec(IrfanCommand)
      Do While (s01.Status = 0)
         WScript.Sleep 100
      Loop
      
      'pętla odnajduje plik pierwszej strony i dodaje tekst
      Set fld_t = fso.GetFolder(dir_temp)
      For Each fil_t In fld_t.Files
         if LCase(Right(fil_t.Name, 8)) = "0000.tif" then
            temp_file_name = fil_t.name
            fso.MoveFile dir_curr & dir_temp & "\" & temp_file_name, dir_curr & dir_temp & "\" & replace(temp_file_name, "_page_0000", "")
            IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & dir_curr & dir_temp & "\" & replace(temp_file_name, "_page_0000", "") & "/ini=""" & file_ini & """ /advancedbatch /convert=" & dir_curr & dir_temp & "\" & temp_file_name & "/killmesoftly"
            Set s01 = WshShell.Exec(IrfanCommand)
            Do While (s01.Status = 0)
               WScript.Sleep 100
            Loop
            fso.DeleteFile dir_curr & dir_temp & "\" & replace(temp_file_name, "_page_0000", ""), true
            set fld_t = nothing
            set fil_t = nothing
            exit for
         end if
      Next
      
      'dodanie separatora
      IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & file_separator & "/append=" & file_done & " /silent /killmesoftly"
      Set s01 = WshShell.Exec(IrfanCommand)
      Do While (s01.Status = 0)
         WScript.Sleep 100
      Loop
      
      'pętla przegląda folder tymczasowy i dodaje je do pliku wynikowego za separatorem
      Set fld_t = fso.GetFolder(dir_temp)
      For Each fil_t In fld_t.Files
         IrfanCommand = "C:\Program Files (x86)\IrfanView\i_view32.exe " & dir_curr & dir_temp & "\" & fil_t.Name & "/append=" & file_done & " /silent /killmesoftly"
         Set s01 = WshShell.Exec(IrfanCommand)
         Do While (s01.Status = 0)
            WScript.Sleep 100
         Loop
      Next
      'usunięcie plików tymczasowych
      fso.DeleteFile dir_temp & "\*", true
   end if
Next
'usunięcie folderu tymczasowego
fso.DeleteFolder dir_temp, true
set fso = nothing
set WshShell = nothing
set fld = nothing
set fil = nothing
set fld_t = nothing
set fil_t = nothing

msgbox "Przetworzonych zostało: " & file_counter & " plków.", o, "IRFAN_APP"

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 922 wizyt
pytanie zadane 21 września 2018 w Visual Basic przez Jiin Obywatel (1,390 p.)
0 głosów
0 odpowiedzi 121 wizyt
pytanie zadane 28 listopada 2016 w Visual Basic przez rafi-vir Nowicjusz (140 p.)
0 głosów
1 odpowiedź 834 wizyt
pytanie zadane 19 listopada 2018 w Bezpieczeństwo, hacking przez Michał Samolewski Bywalec (2,240 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...