Как удалить четные файлы

Обновлено: 07.07.2024

10байт, как из файла удалять чётные слова?
Слова от 5 до 12 байт,разделены знаками пунктуации.
Удаление требуется такое, чтобы файл "обрезался" (т.е. если мы закинем в наш файл N слов одинаковой M длинны, то после обработки файл должен "весить" на N*M/2 байт меньше (т.е. удалено каждое второе слово).


Алгоритм который использую я крайне медленный (выполнение программы должно занимать не больше 30 секунд):

Проблема в алгоритме удаления очередной буквы, я удаляю "нужные" буквы (использую 2 флага: 1 - знак пунктуации , 2 - продолжение удаления\пропуска слова(т.е. смысл в том что одно слово пропускаю,одно удаляю, одно пропускаю, одно удаляю и т.д.)) следующим образом:

1. Передвигаю указатель в файле на 1 вперёд
2. Считываю элемент на который указывает указатель(упс) в файле
3. Проверяю не конец ли файла (кол-во считанных байт в ax!=0)
4. Записываю элемент в temp.
5. Если = 0 то переход к пункту 7
6. Если !=0 то возвращаю указатель на 2 элемента назад, вставляю temp.
7. Переход к пункту 1
8. Обрезаем файл на 1 байт
8. Конец

Использовать доп. файлы запрещено.
Посоветуйте более быстрый алгоритм.

Добавлено через 3 часа 30 минут
Разрешил вопрос использованием видеобуфера взаместо доп. файла (работает для файлов <128 кбайт) . Если вдруг кому-нибудь понадобится решение:

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Нужен алгоритм проверки большого числа на простоту
Нужен быстрый код, который проверит число типа BigInteger на простоту (простое это число или нет).

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


Удаление повторов из большого txt-файла
Привет! Есть большой 3гб файл file.txt в нем такие строки (и могут быть повторения) нужно.

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


Удаление совпадающих слов одного файла из другого файла
Существует следующая проблема. Есть 2 текстовых файла. В первом файле находится текст, а во втором.

Удаление чётных строк из файла
есть txt Документ из него нужно удалить каждую 2-ю строку,как это сделать!? гуглю целый.

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

удаление из файла слов больше n
Помогите пожалуйста вот тут совсем немного, открытие файла, построчное считывание и функция.

У меня есть папка Windows Explorer, которая содержит файлы с именами file0001 , file0002 и т.д. Я хочу выбрать и открыть только файлы с четным номером в имени.

Есть ли способ выбрать второй столбец здесь? Или есть другой (быстрый) способ сделать это.

3 ответа 3

Да, это возможно (хотя и хакерски), если ваши файлы названы так, как вы их описали (если вы не пропустите ни одного файла, поэтому «второй столбец» всегда четный). Что вы можете сделать, это выбрать любой другой файл, выбрав, с чего начать (и, следовательно, выбрав нечетное или четное)

Если вы просматриваете по значку (я выбрал большой значок) и изменяете ширину проводника Windows, чтобы он имел только "2 столбца", то вы можете удерживать нажатой клавишу CTRL и использовать левую кнопку мыши и перетаскивать ее мышью вниз (чуть выше первого значок во "втором столбце" (в пустом пространстве)).

Кроме того, в зависимости от того, сколько столбцов у вас есть, вы также можете выбрать каждый третий файл или четвертый файл и т.д.

Я только что сделал это, и он будет автоматически прокручиваться.

Вы даже можете развернуть Windows Explorer (File Explorer), и выбор останется.

Уловка изменения размера окна, которой поделился Дэйв, прекрасно работает в большинстве случаев. В моем случае из видео было извлечено более 25 000 изображений, и мне нужно было удалить все остальные изображения. Ожидание перетаскивания для выбора всех файлов заняло больше времени, чем я был готов ждать!

Мои файлы были названы в том же порядке, что и ваши ( file0001.jpg , file0002.jpg и т.д.). Так как мне нужны были все остальные файлы, я знал, что файлы, которые мне нужны, будут заканчиваться как 0,2,4,6 или 8.

Чтобы выбрать соответствующие файлы, я ввел *0.jpg OR *2.jpg OR *4.jpg OR *6.jpg OR *8.jpg в окне поиска Windows Explorer, когда я находился в папке со всеми моими изображениями. Затем я нажал Ctrl+A чтобы выбрать все, затем delete и все готово!

Этот трюк будет работать только для выбора каждого элемента с пронумерованным x где x - это коэффициент 10 (т.е. 1,2,5 или 10), но щелчок и перетаскивание должны работать в течение любого интервала.

Таким образом, этот метод самый быстрый, но метод щелчка и перетаскивания является более гибким. Выберите тот, который лучше всего соответствует вашим потребностям.

Я пытаюсь редактировать документ из 20000 строк. Я должен удалить каждую нечетную строку, скажем, например:

Как я могу удалить символы каждой нечетной строки в документе?

что вы подразумеваете под нечетной строкой? Вы хотите удалить лишнее (нежелательное) слово из всего документа? Каждые нечетные строки, как 1,3,5,7,9,11,13,15 . и так далее. Попробуйте заменить на новую строку (регулярное выражение): [\ n. + \ N] Я записал бы глупый макрос: стрелка вниз, стрелка сдвига вниз, del.

Вы можете сделать это с помощью поиска и замены:

  • Откройте диалог замены ( Ctrl + H )
  • Выберите «Регулярное выражение»
  • Найти то, что: .+\r\n(.+(\r\n|$))
  • Заменить:
    $1
  • Нажмите «Заменить все»
  • В зависимости от вашей ОС вам нужно использовать \r (старый Mac), \n (Unix, OS X) или \r\n (Windows), чтобы соответствовать концу строки, или просто использовать, \R который должен работать везде (спасибо за @Aurel Bílý)
  • \n|$ необходимо иметь правильный результат даже в конце файла
  • По умолчанию Notepad ++ заменяет фактическую позицию курсора на конец файла. Убедитесь, что поместили курсор в начало файла.
    • (Вы также можете проверить «обтекание», но в этом случае он сначала удалит строку, в которой находится ваш курсор, вместо того, чтобы действительно искать нечетную строку.)

    Введите описание изображения здесь

    Это почти работает, но не редактирует первый набор нечетных строк, скажем, от 1 до 15. Измените скриншот с большей прозрачностью этого окна замены. Обратите внимание, что \r конец строки встречается очень редко - он действительно использовался в Mac OS, но в классических версиях до OS-X. В OS X и далее окончания строк \n , как и любой здравомыслящий Unix. Также \R лучше подходит для соответствия любому концу строки. @ AurelBílý Это правда, однако Notepad ++ работает только на Windows, поэтому переносимость здесь не является большой проблемой.
    • Ctrl + H
    • Найти то, что: .+\R(.+)
    • Заменить: $1
    • Replace all

    Объяснение:

    • Проверьте регулярное выражение
    • НЕ ПРОВЕРИТЬ . matches newline

    Результат для данного примера:

    @NithinN: имейте в виду, что принятый ответ не работает с файлами Linux (т.е. \n
    1. Откройте файл и поместите текстовый курсор в начале первой строки.
    2. Меню → МакросНачать запись
    3. Нажмите End клавишу на клавиатуре
    4. Shift + Home , тогда backspace
    5. Down
    6. Backspace
    7. Down
    8. Меню → МакросОстановить запись
    9. Меню → МакросЗапуск макроса несколько разУстановите флажок Выполнить до конца файла
    10. щелчок Run

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

    Я только что проверил на компьютере моего коллеги, который на самом деле использует Notepad ++. Попробуй это:

    Читайте также: