Вернуться на Страничку новостей.

23.12.2007

Недавно, через Yandex наткнулся на сайт www.kak-tot.narod.ru Это сайт Олега Дятлова. Это сайт, в котором "словам тесно, мыслям просторно". И жизнь этого энергичного человека меня изумляет. Каким извилистым путем пришел он в программирование. И кое-чего добился! Его часики украшают экран моего компа. Минимум средств - максимум эффекта. И так во всем. Ну да как говорится то ли еще будет!

Так же помещаю в рубрику C++ три полезных (по крайней мере для меня) утилиты.
Люблю писать программы, работающие с текстовыми файлами и строками.

Программа Ar_05.zip
Программа Ar_06.zip
ПрограммаAr_04_25_07.zip
ПрограммаAr_04_25_07.zip-экзешник и три текстовых файла.

Описание трех программ:


Программа Ar_05.zip - исходники для компиляции и сборки.

Эта консольная программа откомпилирована и выполнена в 6-й версии
программы Microsoft Visual C++

Программа написана для вставки фрагмента текста перед словом "// Listing". Это мне надо было для перевода в html-вариант книги Либерти "С++".

Эта программа - утилита для программиста. Программным способом можно изменить слово вместо "// Listing" на другое слово, которое программа будет искать в текстовом файле fileFrom.txt. Текстовый Файл fileFrom1.txt, в котором находится текст для вставки тоже может иметь любое содержание.

Программа копирует из файла fileFrom.txt в файл fileTo.txt, но каждый раз перед словом "// Listing" вставляет фрагмент текста, копируемый из файла fileFrom1.txt Слово "// Listing" задано программным способом. А содержание текстовых файлов естественно можно изменять произвольно. Все вставки текста идут с новой строки. И после вставки текст опять начинается с новой строки.

Предусматривает все случаи. Когда ключевое слово "// Listing" находится в начале строки, в середине строки, в конце строки, а так же когда повторяется несколько раз в одной строке.

Программа считывает текстовый файл fileFrom.txt построчно в объект tmp класса string при помощи функции readline(). Затем объект tmp анализируется на предмет наличия в нем нужного слова "// Listing". Это делается при помощи функции find().

n = tmp.find(str); // найдем позицию вхождения

переменная n может иметь три основных варианта положения слова в строке.

1. Если такого слова в строке tmp нет (функция поиска возвращает значение n = -1), то эта строка tmp без изменений сразу копируется в новый текстовый файл fileTo.txt.

Если слово "// Listing" в строке tmp найдено, то определяется его местоположение (индекс) в строке tmp.

Затем идет три варианта положения слова в строке. В начале строки (функция поиска возвращает нулевое значение), в середине строки (функция поиска возвращает положительное значение, совпадающее с индексом первого вхождения слова в строку). Если слово word в анализируемой строке tmp встречается несколько раз, то в цикле обрабатывается этот вариант.


Программа Ar_06.zip - исходники для компиляции и сборки.

Эта консольная программа откомпилирована и выполнена в 6-й версии
программы Microsoft Visual C++

Это видоизмененная предыдущая программа. В тексте файла выискивается слово, допустим "Алексей Васильевич" fileFrom.txt и везде к этому слову программа добавит прилагательное допустим " Уважаемый ". Обе строки заданы программным способом.

В этой программе хорошо то, что при вставке слова " Уважаемый " не теряется общее форматирование текста - то, которое было в исходном файле.

Это утилита для программиста. Достаточно программным способом изменить оба слова, затем откомпилировать и программа делает то, что вам нужно. Отыскивает в текстовом файле слово или строку, и вставляет перед ним новое слово или строку.

----------------------
Дело в том, что у меня появились определенные сложности с входными потоками при написании программы, в которой требуемые строки можно было бы вводить с клавиатуры. Как только эти проблемы будут решены, то эти две программы могут стать интерактивными.


Программа Ar_04_25_07.zip - исходники для компиляции и сборки.
Программа Ar_04_25_07a.zip -экзешник и три текстовых файла.

Эта консольная программа откомпилирована и выполнена в 6-й версии программы Microsoft Visual C++

Если в текстовом файле забыли проставить пробелы после запятых и др знаков препинания. То программа ставит пропущенные пробелы. Текст, который нужно обработать вставляется в файл fileFrom.txt Результирующий текст, с правильно проставленными пробелами после знаков препинания будет находиться в файле fileTo.txt Экзешник и текстовые файлы должны находиться в одной директории.

Эта программа ставит пробелы после следующих знаков препинания: string str =".,:;!?";

Программа правильно ведет себя с открывающими и закрывающими кавычками. Открывающие и закрывающие кавычки обязательно должны быть в паре. Иначе (при нечетном числе кавычек) программа может сбиться и расставлять пробелы для кавычек не правильно.

Вернуться на главную .

Hosted by uCoz