Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Помогите с опеределением размера файла.
sergiopoveronyДата: Понедельник, 22 Апреля 2013, 10:21 | Сообщение # 1
Новый участник
Группа: Пользователи
Сообщений: 3
Репутация: 0
Награды: 0
Статус: Offline
Желаемое
Код

If (Размер файла Меньше 6 мегабайт)  Then
     MessageEx("Ваш файл меньше 6 мегабайт.","")
Else
     MessageEx("Ваш файл больше 6 мегабайт.","")
End


Поиском пользоваться умею, брал за пример эту работу http://mmbuilder.ru/load/modules/rush/1/37-1-0-488

со значениями
/finfo c:\pagefile.sys

Не могу понять как мне это осуществить.
чтобы было как в коде что я указал выше.
Спасибо.

Добавлено (22 Апреля 2013, 10:21)
---------------------------------------------
Или другим каким либо способом без использования модулей вообще будет прекрасно.

 
YURIYДата: Понедельник, 22 Апреля 2013, 14:15 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата (sergiopoverony)
Поиском пользоваться умею


Цитата (sergiopoverony)
/finfo c:\pagefile.sys


Пользоваться поиском умеете, это хорошо, а читать справку по модулю? :) Цитирую:

Цитата
Формат - /finfo имя }} файл сохранения результатов
Имя папки или файла может содержать полный или относительный путь.
Пример:
/finfo c:\pagefile.sys }} info.txt


Разницу чувствуете? Кстати, у меня такого файла нет, что в справке автора, пишу свой. Пример. С таким кодом:

Код
param$ = '/finfo c:\swapfile.sys }} info.txt'
Run("<Embedded>\fscmd101.com","param$")


По пути <Embedded>\info.txt будет находиться файл в формате, описанном в справке:

Цитата
Возвращаемые значения:
полный маршрут файла#родительская директория#имя файла#дата создания#дата изменения#дата открытия#атрибуты#тип файла#размер файла#приложение для запуска#версия файла (для исполняемых файлов)#


Парсите файл, выдираете оттуда размер файла и прописываете своё условие.

Цитата (sergiopoverony)
Или другим каким либо способом без использования модулей вообще будет прекрасно.


Средствами MMB не выйдет. Можете найти ещё какой плагин, например. Думаю, такой точно есть.



Вечная память Андрею Сергееву!
 
sergiopoveronyДата: Понедельник, 22 Апреля 2013, 14:19 | Сообщение # 3
Новый участник
Группа: Пользователи
Сообщений: 3
Репутация: 0
Награды: 0
Статус: Offline
Цитата (YURIY)
Средствами MMB не выйдет.

Решил данный вопрос другим способом... у вас такого небыло. Стандартными средствами оказывается, тоже можно.

Это уже мной переделанный...

Код
OpenFile$='c:/temp.exe'
TempFile$='_cmd.txt'
FullName$=ExtractName(OpenFile$)+ExtractExt(OpenFile$)
Line$='WAIT,HIDE /c dir "'+OpenFile$+'" >"%TEMP%'+CHR(92)+TempFile$+'"'
Run("cmd","Line$")
TempFile$=<Temp>+TempFile$
String$=StrFromFile(TempFile$,6,1)
Date$=StrC   opy(String$,1,17)
Pos=LEN(String$)-(LEN(Date$)+LEN(FullName$)+1)
String$=StrCopy(String$,18,Pos)
For i=1 To LEN(String$)
   Char$=StrGet(String$,i)
   If (ORD(Char$)>=224) Then
     Code=ORD(Char$)+16
     Char$=CHR(Code)
   End
   If (ORD(Char$)>=128 & ORD(Char$)<=191) Then
     Code=ORD(Char$)+64
     Char$=CHR(Code)
   End
   If (ORD(Char$)>32) Then
     Bites$=Bites$+Char$
   End
Next i
Bites=VAL(Bites$)
For j=3 To 1
   If (Bites>1024^j) Then
     For i=1 To 1024
       If (Bites<(1024^j)*i) Then
         Bites=Bites-(1024^j)*(i-1)
         Results[j]=i-1
         Break()
       End
     Next i
   End
Next j
mes$='You boot img size: '+CHAR(Results[2])+'Mb'+CHAR(Results[1])+'kb'
Message("mes$","")
data$=CHAR(Results[2])
If (data$='0') Then
   Message("GOOD","")
Else
    Message("BAD","")
End
 
YURIYДата: Понедельник, 22 Апреля 2013, 14:26 | Сообщение # 4
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Цитата (sergiopoverony)
Стандартными средствами оказывается, тоже можно.


Я имел в виду чистыми средствами MMB. Ведь используете cmd.



Вечная память Андрею Сергееву!
 
  • Страница 1 из 1
  • 1
Поиск: