Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: vbs: сравнение размера файла
     
    
Добавлено: 01.11.10 12:13
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 gadkin
      
       
  
Приветствую.
 
    
Вот, изваял скриптик, который по идее должен сравнивать актуальный размер файла с цифрой, записанной в промежуточном файле, и потом выводить результат в другой файл (если актуальный размер больше, то хорошо, т.е. "0", в остальных случаях - "1"). Но скрипт работает некорректно: при явно бОльшем актуальном значении результат записывается как "1". Пробовал сравнивать два файла "налету", т.е. без промежуточных значений из файла - всё ок.
Буду признателен за помощь.
собственно скрипт сравнения
Dim FSO,targetFile,prev_size,actual_size,TextStream,objShell,resultfilesize,filesize,TextStreamfilesize
Const ForReading = 1, TristateUseDefault = -2
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
Set targetFile = FSO.GetFile("C:\temp\targetfile.txt")
actual_size=targetFile.size
set filesize=FSO.GetFile("C:\temp\size.txt")  'в этом файле предыдущее значение размера
set TextStream=filesize.OpenAsTextStream(ForReading, TristateUseDefault)
prev_size=TextStream.ReadLine
TextStream.Close
if actual_size > prev_size Then
objShell.run "cmd.exe /c echo 0 > C:\temp\result.txt", 0, true
else
objShell.run "cmd.exe /c echo 1 > C:\temp\result.txt", 0, true
end if
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 AgentFire
![]()
![]()
![]()
ICQ: 192496851 
Вопросов: 75
Ответов: 3178
      
 Профиль |  | #1
       
Добавлено:  01.11.10 14:27
       
    
       
  
Учитесь дотнету! там можно сделать подобное задание в пять простых строчек кода
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 chialexus
![]()
![]()
![]()
![]()
![]()
ICQ: 321922 
Вопросов: 3
Ответов: 53
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  01.11.10 16:42
       
    
       
  
gadkin, попробуй так - prev_size=CLng (TextStream.ReadLine)
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 gadkin
![]()
Вопросов: 1
Ответов: 1
      
 Профиль |  | #3
       
Добавлено:  02.11.10 09:23
       
    
       
  
к сожалению CLng не подошло, т.к. у этой функции ограничение до числа 2147483647, но спасибо за подсказку направления в котором копать  
    
 использовал функцию Ccur, там ограничение на 5 разрядов больше. Вопрос решён.