Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
and0993
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 3
#1

Работа с текстовым файлом - C++

11.08.2012, 07:59. Просмотров 711. Ответов 7
Метки нет (Все метки)

Здравствуйте все!
Мне очень нужна помощь в написании кода программы для работы с текстовым файлом.
Допустим, у меня есть документ.txt примерно такого содержания:
words_ab.1234%abc.ru
qwerty.777.uiop%cde.ru и т.д.
Нужно чтобы программа работала построчно и на выходе был новый текстовый файл примерно с таким содержанием:
words_ab.1234%abc.ru;wordsab ///то бишь ставится знак ";" далее до "%" берется только латиница исключая и символы и цифры
words_ab.1234%abc.ru;wordsab1234 ///до "%" берется латиница и цифры, исключая символы "." "_"
words_ab.1234%abc.ru;words_ab. ///до "%" берется латиница и символы "." "_", исключая цифры
words_ab.1234%abc.ru;words_ab.1234 /// переносится все, что было до "%"
qwerty.777.uiop%cde.ru;qwertyuiop
qwerty.777.uiop%cde.ru;qwerty777uiop
qwerty.777.uiop%cde.ru;qwerty..uiop
qwerty.777.uiop%cde.ru;qwerty.777.uiop
Помогите, пожалуйста с кодом, очень надеюсь на вашу помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2012, 07:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с текстовым файлом (C++):

Работа с текстовым файлом - C++
Здравствуйте ребята, на практических столкнулась с проблемой, необходима ваша помощь) Есть открытый текстовый файл с несколькими строками...

Работа с текстовым файлом - C++
Доброго времени суток, друзья! Прошу помощи с выполнением лабораторной работы. Задание: необходимо прочитать текстовый файл и...

Работа с текстовым файлом - C++
Всем доброго вечера! Имеется текстовый файл в котором информация занесена таким образом -Название государства, Численность, Плотность....

Работа с текстовым файлом - C++
Здравствуйте. Имеется текстовый файл, в котором известно количество очков, набранных каждой из 19 команд-участниц первенства по футболу....

Работа с текстовым файлом - C++
Ниже представлен код программы, которая ищет символ заданный пользователем в txt файле ("input.txt"), и те строки текста где находится этот...

Работа с текстовым файлом - C++
Прошу помощи. Должно быть консольное приложение. Описываю последовательность действий. Текстовый файл 1234.txt розмещен в каталоге с...

7
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
12.08.2012, 13:48 #2
Вам это принципиально на C++ нужно? Просто это можно решить и в шелле:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ cat example.txt | awk -F% '{
>  alphas=$1;
>  alphanums=$1;
>  alphaspace=$1;
>
>  gsub( /[^ a-zA-Z]/, "", alphas );
>  gsub( /[^ a-zA-Z0-9]/, "", alphanums );
>  gsub( /[^ a-zA-Z_\.]/, "", alphaspace );
>
>  print $0 ";" alphas;
>  print $0 ";" alphanums;
>  print $0 ";" alphaspace;
>  print $0 ";" $1;
> }'
words_ab.1234%abc.ru;wordsab
words_ab.1234%abc.ru;wordsab1234
words_ab.1234%abc.ru;words_ab.
words_ab.1234%abc.ru;words_ab.1234
qwerty.777.uiop%cde.ru;qwertyuiop
qwerty.777.uiop%cde.ru;qwerty777uiop
qwerty.777.uiop%cde.ru;qwerty..uiop
qwerty.777.uiop%cde.ru;qwerty.777.uiop
2
t1m0n
621 / 397 / 21
Регистрация: 03.11.2009
Сообщений: 1,829
12.08.2012, 17:00 #3
используй регулярные выражения...
0
and0993
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 3
12.08.2012, 20:29  [ТС] #4
Спасибо огромное за помощь.
Подскажите, пожалуйста, просто о шелле никогда не слышал ранее.
В какой программе этот скрипт надо писать? и если у меня операционка windows, смогу ли я вообще что-то сделать? Просто сам сейчас пытался разобраться, я так понял это unix код под Linux.
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
13.08.2012, 19:50 #5
Да, шелл - это юниксовая штука. Но в винде есть подобные приблуды. Например, cygwin. Тормознутый, иногда глючный, но дело своё знает :-)

Ну а если вам именно на C или C++ - не стесняйтесь, чем смогу :-)
1
and0993
0 / 0 / 0
Регистрация: 11.08.2012
Сообщений: 3
14.08.2012, 09:08  [ТС] #6
Пока пробую разобраться с тем, что есть.
Скачивать cygwin не стал. Поставил Git.
Запустил его, открылась командная строка такого вида:
http://imglink.ru/show-image.php?id=...ac5c6e80006dac
Так вот можете объяснить, пожалуйста, отсюда поподробнее:
Код, который вы писали выше, мне полностью перепечатывать туда? Просто ctrl-c ctrl-v не прокатывает, а правой кнопкой мыши и вызвать диалоговое окно с "копировать" "вставить" я не могу.
Пробовал создавать текстовый документ со скриптом (на примере .bat файла), потом менять просто расширение на .sh (я так понял в шелле такое расширение), потом запускал, окно открывалось, через 2 секунды закрылось и все. Проверить, сработала ли программа я не могу, отсюда следующий вопрос:
Куда кидать example.txt?
В общем, не бейте, что тут такие глупые вопросы задаю, просто сам я сталкиваюсь с программированием в таком формате первый раз. (на первом курсе поверхностно excel проходил и все)
И тут у меня возник еще один вопрос, можно ли сделать так, чтобы после выполнения программы все результаты вносились в .txt файл? В этот же, либо в другой, значения не имеет, просто обычно работаю с большими текст-файлами, поэтому выделять вручную будет просто нереально.
0
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
14.08.2012, 11:44 #7
вы лучше в этом http://www.cyberforum.ru/cmd-bat/ разделе вопрос задайте
0
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
14.08.2012, 20:31 #8
and0993, через личку попросите модератора перенести тему в другой раздел - по шеллу желательно.

Вывод вместо терминала в файл осуществляется перенаправлением вывода. Пример:

Bash
1
2
3
4
$ echo hello
hello
 
$ echo hello > output.txt
То есть

Bash
1
$ cat example.txt | awk -F% '{ alphas=$1; alphanums=$1; alphaspace=$1; gsub( /[^ a-zA-Z]/, "", alphas ); gsub( /[^ a-zA-Z0-9]/, "", alphanums );  gsub( /[^ a-zA-Z_\.]/, "", alphaspace ); print $0 ";" alphas; print $0 ";" alphanums; print $0 ";" alphaspace; print $0 ";" $1; }' > output.txt
Выведет результат в output.txt в текущей директории.

Куда кидать входной файл тоже не принципиально. Просто перейдите в директорию с ним и введите команду.

Да, и ещё. Символ '$' в начале строки набирать не нужно. Он просто показывает, что далее идёт ввод команды, а не кусок чьего-то вывода.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2012, 20:31
Привет! Вот еще темы с ответами:

Работа с текстовым файлом С++ - C++
Здравствуйте! Помогите написать программу которая будет выводить на консоль студентов, имеющих по трём предметам (Math Analysis, Physics,...

Работа с текстовым файлом - C++
Вот часть кода: void ReadFile(ifstream &fin, int Kol_Ar) { //чтение данных из файла и вывод на консоль CCust *ReadF = new...

Работа с текстовым файлом - C++
Нужно программа которая добавляет записи в файл вида: - Структура "Спортивная команда": - название; - город; - количество...

Работа с текстовым файлом - C++
Дан текстовый файл, имеющий более 3х строк. Задание: удалить из файла последние три строки. Заранее спасибо всем, кто поможет.


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
14.08.2012, 20:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru