Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 33

Проверка одинаковых строк в файле

08.02.2017, 15:55. Показов 2862. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Помогите новичку, нужно сделать проверку одинаковых строк в файле test.txt, а затем записать результат в переменную, если повторения были, то 1, если повторений не было, то 0.

Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2017, 15:55
Ответы с готовыми решениями:

Проверка наличия одинаковых строк в двух файлах
Добрый день, помогите написать батник. Нужно следующее: 1. Есть .txt файл со следующим примерным содержимым: 123qwe 23afwae ...

Поиск одинаковых строк в текстовом файле и вывод дубликатов в другой текстовый файл
Добрый вечер. Нужна помощь знатоков Есть текстовый файл по пути D:\arxiv\rezult.txt с содержимым: Air robot MPEG-4-5min...

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

9
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
08.02.2017, 17:19
Каково описание задачи, таков ответ. Примерное решение сходу:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
  setlocal enabledelayedexpansion
    set "i=0"
    for /f "delims=" %%i in (
      'type test.txt ^| sort'
    ) do (
      set "arr.!i!=%%i"
      set "cur=%%i"
      set /a "n=i-1"
      for /l %%j in (0, 1, !n!) do (
        if /i "!arr.%%j!" equ "!cur!" set "m=1"&goto:end
      )
      set /a "i+=1"
    )
    :end
    echo !m!
  endlocal
exit /b
0
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 33
08.02.2017, 20:36  [ТС]
Эм... слишком длинный код.

Попробую объяснить проще. Код должен проверить файл test.txt на повторение артикулов(слов, чисел), если артикул повторяется, тогда нужно выдать ошибку. Артикула идут в столбик. У меня была идея следующая:

...тут код проверки на повторение артикулов в папке, если хоть один артикул повторяется, то art=1, если не повторяется, то art=0...

Bash
1
2
3
if "!art!" == "0" (
...основной код...
) else ( echo один или несколько артикулов повторяются, проверьте файл )
Что-то вроде этого. Не знаю как более подробно можно объяснить...
0
69 / 59 / 18
Регистрация: 23.01.2017
Сообщений: 170
08.02.2017, 21:08
А если воспользоваться сортировкой?

Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
setlocal enabledelayedexpansion
 
for /f "tokens=* delims= eol=" %%a in ('type file.txt^|sort') do (
if defined string if "%%a"=="!string!" (echo 1 & exit /b 1)
set string=%%a
)
 
echo 0 & exit /b 0
Добавлено через 4 минуты
Вот только важно, что for пропускает пустые строки и, чтобы они не пропускались, нужно хитро юзнуть findstr.
0
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 33
08.02.2017, 21:22  [ТС]
Не думаю, что до пустых строк дойдёт ... до этого тоже проверки есть
Bash
1
2
3
4
5
6
    FOR %%R in (names.txt) do if not %%~zR lss 1 (
        For /F "usebackq" %%L In (names.txt) Do (Set /A Lines+=1)
        Set Cnt=0
        For %%I In (*.CR2) Do (Set /A Cnt+=1)
        set /A sum= Lines * 4
        if "!sum!" == "!Cnt!" (
PS: код так и не понял... пожалуйста, можно на примере с if "!art!" == "0" ( ... ) else ( ... )
0
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 841
08.02.2017, 21:31
Цитата Сообщение от UnrealMalcolm Посмотреть сообщение
сделать проверку одинаковых строк в файле test.txt
что такое - одинаковая строка в файле? приведите пример, пожалуйста
я тоже
Цитата Сообщение от UnrealMalcolm Посмотреть сообщение
...так и не понял...
0
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 33
08.02.2017, 21:35  [ТС]
Ок. Файл test.txt и его содержание

1
2
3
4
5
6
7
8
9
10
8
11
12
13
14
В данном случае 8 повторяется, а раз она повторяется, значит art=1
0
 Аватар для b0gus
741 / 339 / 134
Регистрация: 17.03.2014
Сообщений: 841
08.02.2017, 23:16
UnrealMalcolm,
собственно, greg zakharov и предложил решение вашего вопроса,
вот ещё одно, использующее такую же технику:
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type test.txt ^| sort') do (
  if "!cur!" == "%%i" (set "rep=1" & goto:break) else (set "cur=%%i")
)
:break
if "%rep%" == "1" (echo:повторения есть) else (echo:повторений нет)
pause
exit /b
1
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
09.02.2017, 11:45
Цитата Сообщение от UnrealMalcolm Посмотреть сообщение
пожалуйста, можно на примере с if "!art!" == "0" ( ... ) else ( ... )
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "cnt=0"&set "str="&set "exp="
for /f "delims=" %%a in ('type test.txt^|sort') do set "str=%%a"&call :ver
if %cnt%==0 (echo ok) else (echo cnt="%cnt%" - один или более артикулов повторяются, проверьте файл)
pause&exit
 
:ver
if defined exp if "%exp%"=="%str%" set /a cnt+=1
set "exp=%str%"
exit /b
1
0 / 0 / 0
Регистрация: 18.01.2016
Сообщений: 33
09.02.2017, 20:38  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2017, 20:38
Помогаю со студенческими работами здесь

Проверка одинаковых строк
Подскажите как можно проверить две строковые переменные, одинаковы ли они?

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

Подсчитать в текстовом файле число строк, состоящих из одинаковых литер
составить программу подсчета в текстовом файле числа строк,состоящих из одинаковых литер.

Подсчитать в текстовом файле количество строк, состоящих из одинаковых символов
Подсчитать в текстовом файле количество строк, состоящих из одинаковых символов.

Проверка двух строк, если они состоят из одинаковых слов
Нам задаются две строки, если они состоят из одинаковых слов, то функция должна вернуть 1, иначе 0. Регистр букв и знаки препинания не...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru