Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/64: Рейтинг темы: голосов - 64, средняя оценка - 4.55
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330

Вывод содержимого файла на экран со 2 строки в ms-dos

06.02.2019, 12:07. Показов 13913. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Подскажите как в MS-DOS (COMMAND.COM) можно вывести файл начиная со 2 строки?

Такой способ выводит файл полностью.
Windows Batch file
1
type 1.txt
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.02.2019, 12:07
Ответы с готовыми решениями:

Вывод строки на экран в DOS
Привет всем. Никак не могу понять программу вывода строки на экран в DOS. Для чего и где выделяется stack 10h, зачем еще перемещать в dx s1...

Вывод содержимого файла на экран
Подскажите пожалуйста, как вывести с file2.ехе на екран? public static void main(String args) { try { ...

Вывод содержимого файла на экран
С помощью подсказок и своего немного труда создал программу. Но последние условие выполняется не правильно. Выводится не содержимое файла,...

26
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
07.02.2019, 21:25
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Nalik Посмотреть сообщение
хотелось бы сделать красиво со считыванием реального файла, а не заготовкой в виде parrent.cfg, но видимо не судьба
Чаще требуется же функционал, а не красота. В MS-DOS, с его command.com, красоты будет меньше всего, а функционала и того меньше. Вот на что, собственно, пытались намекать, а не на то, о чем Вы подумали.
Можно, конечно, попытаться создать новый файл, а потом его переименовать в тот, который требуется...
Но лично я, до сих пор, не понял откуда поступают данные и что же в итоге получится... ибо информация немного размазана по топикам...
Ну, да ладно, попробуем с допусками:
1. Допустим, что требуемый массив текста берется из файла settings.cfg, исключая первую строку такого содержания:
Code
1
MAC = 11 22 33 44 55 66
2. Допустим, что новые данные набираются вручную в качестве параметра батника.
3. Допустим, что содержание первой строки, например, слова "MAC" нигде в исходном файле не встречается, кроме как в первой строке.
Теперь попробуем поработать с тем, что предоставляет MS-DOS 6.22
Батник мог бы быть таким:
Windows Batch file
1
2
3
4
5
@echo off
echo.MAC = %1 %2 %3 %4 %5 %6 >tmp.txt
type settings.cfg|find /v "MAC" >>tmp.txt
del settings.cfg
ren tmp.txt settings.cfg
- примерно так...

Цитата Сообщение от Nalik Посмотреть сообщение
не указывая ТС, что он дебил и для меня это легко, либо не отвечаю ничего.
Не надо обижаться, злобно здесь никто не шутит... тем более, не пытается, что-то кому-то указывать. Просто с высоты современных средств, очень нелегко вспомнить какие были возможности той старой ОС и дать конкретный ответ без проверки.

К тому же, больше чем уверен, что Вы доставили некоторым удовольствие поностальгировать по ушедшим временам, когда только всё начиналось и думаю, что эти некоторые за это Вам благодарны.
0
 Аватар для volodin661
7160 / 2328 / 353
Регистрация: 10.12.2013
Сообщений: 8,058
08.02.2019, 21:11
Лучший ответ Сообщение было отмечено YuS_2 как решение

Решение

replin.c
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define MAXSIZ  512
 
int main( int argc, char **argv)
{
    int  counter = 1;
    int  target_line_number;
    char *target_filename;
    char *tmp_filename = "#tmp#";
    char *target_text;
 
    char line[MAXSIZ];
    FILE *fp;
    FILE *fpp;
 
    if ( argc < 2 ) {
        printf( "\nUSAGE: replin {Filename:Line} {Text}\n");
        printf( "Example: replin myconfig.cfg:5 \"MACADDR = 22 33 44 55 66 77\"\n");
        exit(0);
    }
    target_filename    = strtok( argv[1], ":" );
    target_line_number = atoi(strtok( NULL, ":"));
    target_text        = argv[2];
 
    fp  = fopen( target_filename, "r");
    fpp = fopen( tmp_filename,"w");
    if ( (fp == NULL) || (fpp == NULL) )
        exit(EXIT_FAILURE);
 
    while ( fgets(line, MAXSIZ, fp) ) {
        if ( counter == target_line_number )
            fprintf(fpp, "%s\n", target_text);
        else
            fputs(line, fpp);
 
        ++counter;
    }
 
    fclose( fp );
    fclose( fpp);
 
    unlink( target_filename );
    rename( tmp_filename, target_filename );
 
    printf("All done!\n");
    exit( EXIT_SUCCESS );
}
Во вложении легендарный дистрибутив Borland Turbo C 2.01

Собрать и использовать:
Windows Batch file
1
replin myconfig.cfg:3 "mac=11 22 33 44 55 66"
заменит 3-ю строчку файла myconfig.cfg на текст mac=11 22 33 44 55 66
Вложения
Тип файла: zip tc201.zip (1.05 Мб, 1 просмотров)
1
 Аватар для volodin661
7160 / 2328 / 353
Регистрация: 10.12.2013
Сообщений: 8,058
08.02.2019, 21:14
Намучился ужасно; vim как следует под MS-DOS не встал, лень было разбираться почему,
а от turbo C отвык по понятным причинам.
0
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
08.02.2019, 23:32  [ТС]
volodin661, поздно я тему посмотрел)
Мой вариант замены 1 строки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
 
int main(int argc, char *argv[])
{
    cout << "Arguments: " << argc << endl;
   if(argc == 7) {
      ifstream in("file.txt");
      ofstream out("file.txt");
 
      char buf[1000];
      int pos = 0;
      while(in.getline(buf, sizeof(buf)))
      {
     pos++;
     if(pos == 1)
     {
        out << "MAC = " <<
        argv[1] << " " <<
        argv[2] << " " <<
        argv[3] << " " <<
        argv[4] << " " <<
        argv[5] << " " <<
        argv[6] << " " << endl;
     }
     else { out << buf << endl; }
      }
 
      in.close();
      out.close();
      printf("Success done\n");
   } 
   system("type file.txt");
   return 0;
}
Borland c++ скачал отсюда
Как открыть Turbo C++ через dosBox?

Добавлено через 1 минуту
Цитата Сообщение от volodin661 Посмотреть сообщение
Намучился ужасно;
Аналогично, но было интересно
Ну за то вы память освежили ))
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
09.02.2019, 12:06
Цитата Сообщение от Nalik Посмотреть сообщение
было интересно
Ну, вот! Это же главное!
А с батником не выстрелил вариант?
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 1
02.12.2022, 12:01
Code
1
2
3
4
Доброго времени суток. Подскажите как в MS-DOS (COMMAND.COM) можно вывести файл начиная со 2 строки?
 
Такой способ выводит файл полностью.
[WINBATCH]type 1.txt[/WINBATCH]

Windows Batch file
1
2
more +1 "1.txt"
more +1 "C:\1.txt"
первый по идеи тоже должен сработать, но второй точно работает )
0
 Аватар для volodin661
7160 / 2328 / 353
Регистрация: 10.12.2013
Сообщений: 8,058
02.12.2022, 12:45
BomjNarik,
Цитата Сообщение от Nalik Посмотреть сообщение
К сожалению команда more отсутствует в MS-DOS для которой задача решается, это бы все облегчило
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2022, 12:45

Вывод содержимого файла на экран
подробнее о том, что должен представлять из себя текстовый файл. После того, как вы определитесь с областью деятельности человека и дадите...

Вывод содержимого файла на экран
Здравтвуйте, прошу вашей помощи. Мне вот надо, чтобы скрипт вывел на экран содержимое файла, скажем test.csv (текстовый), но вывел также,...

Вывод на экран содержимого файла
Напишите программу, которая выводит на экран содержимое файла A:\numbers.txt. За ранние спасибо!

Вывод содержимого файла на экран
У меня есть текстовый файл. Мне нужно вывести его содержимое на экран через паскаль. Вот что я делал var f1:text; s:char; begin ...

Вывод на экран содержимого типизированного файла
Здравствуйте. Кто-нибудь может помочь вывести содержимое типизированного файла на экран? вот программа, которую необходимо переделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru