Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > помогите написать командный файл


Автор: LordNever 29.1.2006, 17:08
Приветсвие всем тута присутствующим!!!! smile

У меня завтра экзамен , а мне надо написать командный файл (который я не представляю как сделать).
Выглядит задание так:Написать командный файл,который считывает содержимое файла и отображает на консоли наибольшее по модулю значение
ПЛИЗ помогите кто знает, мне позарез надо!!!!!!!! и именно СЕГОДНЯ (29.01.06) smile

Автор: LSD 29.1.2006, 18:42
Цитата(LordNever @ 29.1.2006, 17:08 Найти цитируемый пост)
Написать командный файл,который считывает содержимое файла и отображает на консоли наибольшее по модулю значение

А по четче, что надо сделать. Что за данные содержит входной файл, и что надо получить на выходе?

Автор: Fin 29.1.2006, 19:04
В Bat файле такое творить? smile smile Это надо писать программу, которая будет считывать файл и перебирать его, в поиске наибольшего значения по модулю. Тем более не известно, число это сколько байтов или 1 или 2 или 4 или 8

Автор: Fixin 29.1.2006, 19:39
я думаю, во входном файле в каждой строке записаны числа в десятичной форме. я с батниками до такого уровня не развиался, но вроде такое можно осуществит.

Автор: Fin 29.1.2006, 20:40
С учетом того, что предположил Fixin, Есть только одно но. Как делать сравнение чисел, не использую внешних программ?
В принципе числа можно заводить в батник как поток из файла и в цикле опрашивать этот поток. А вот как узнать, кто больше это проблема.

Автор: Fin 29.1.2006, 21:41
Все нашел как сделать smile

Цитата

@echo off
SET p=0
FOR /F "delims=-" %%i in (%1) DO IF /I %%i GTR "%p%"  set p=%%i
echo %p%

Автор: BreakPointMAN 29.1.2006, 21:56
Эххх... smile Давненько я bat-файлы писал... smile
Вот, лови... Правда, одно условие задания я не выполнил - "отображает на консоли наибольшее по модулю значение". У меня программа отображает просто наибольшее значение.

Файл "task.bat":
Код

@ECHO OFF
CLS

SET FirstTime=1
SET Max=

FOR /F "tokens=*" %%i in (data.txt) DO (
   IF !FirstTime! GTR 0 (
      SET FirstTime=0
      SET Max=%%i
   ) ELSE (
      IF !Max! LSS %%i SET /A Max=%%i
   )
)
 
ECHO %Max%



Файл "run.bat":
Код

cmd.exe /V:ON /C task.bat



Данные будут браться из файла data.txt, который должен выглядеть примерно так:
Код

-5
3
7
16
-4
8
22
13
15
15
-19
6
3


Примечания: оба файла должны лежать в одной папке, желательно, в корне диска C:... либо нужно будет корректировать пути. Работать будет только на Win2k и выше.

Автор: Akina 30.1.2006, 10:20
Такие задачи решают CMD- либо VBS-файлами. Вообще-то...

Автор: Tulsky 1.2.2006, 18:04
Лучше чем задавать вопросы на разных форумах, поищите в интернете!

СВЕТА

Автор: SoWa 4.2.2006, 19:50
Круто! А где можно посмотреть о написании БАТ-файлов?

Автор: Fixin 4.2.2006, 20:30
Модератор: оффтоп!
У нас в разделе по Windows CMD.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)