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

Замена заданной текстовой строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ move семантика http://www.cyberforum.ru/cpp-beginners/thread689201.html
Сейчас стало появляться нечто вроде такого: class X { public: X (const X& lvalue); // copy constructor X (X&& rvalue); // move constructor X& operator= (const X& lvalue); // copy assignment operator X& operator= (X&& rvalue); // move assignment operator };
C++ CURL *curl; CURL *curl; опишите подробно что здесь все это значит. Я на php только профи. http://www.cyberforum.ru/cpp-beginners/thread689196.html
BST of strings C++
Задание реализовать для binary search tree string-ов функции add, find, print. struct tree{ string key; node * left; node * right; node * parent; };
C++ Модифицировать алгоритм QuickSort с использованием стека отложенных заданий логарифмической глубины
Модифицировать алгоритм QuickSort с использованием стека отложенных заданий логарифмической глубины, реализованного через массив. Псевдокод StackQuickSort(A) stack<-1,length; while( depth>0) //пока в стеке есть элементы stack->right,left; //извлекаем 2 элемента из стека, ЭТОТ МОМЕНТ НЕ ЯСЕН while(left<right) do middle<-Partition(A,p,r); stack<-left,middle-1; ...
C++ Найти сумму элементов матрицы, имеющих нечетное значение http://www.cyberforum.ru/cpp-beginners/thread689181.html
дан двумерный массив из 20-ти элементов.Заполнить его случайным образом и найти: сумму элементов,имеющих нечетное значение вывести индексы тех элементов,значение которых больше заданного числа А определить есть ли в массиве положительные элементы кратные К (К-вводят с клавиатуры) эта лаба меня доконает.
C++ Error C2059 Я второй день занимаюсь по курсам, вот решил попрактиковаться набрать программу формул умножения и такая ошибка, (C2059) работаю в visual с++ 2008, если что #include <iostream> #include "cstdlib" using namespace std; int main () { setlocale (0,""); cout << "Программа <<Формулы сокращенного умножения>>" << endl; system ("pause"); подробнее

Показать сообщение отдельно
Morfeus
9 / 9 / 1
Регистрация: 22.10.2010
Сообщений: 110
05.11.2012, 17:34     Замена заданной текстовой строки
Замена заданной текстовой строки на указанную текстовую строку
в текстовых файлах заданного каталога

Необходимо написать программу в которой бы создавались каталоги (5 штук) и файлы(5 штук на каждый каталог с информацией) в них и пользователь мог бы выбирать нужный ему каталог.

Так же пользователь мог бы вводить нужную ему строку и заменять ее на новую, так же введенную пользователем.

И сохранять это все в тот же файл.

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


Собственно код данной программы...
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    // Удаление директорий со всем содержимым, (если они были созданы ранее).
    system("if exist box1\\ rd /s /q box1\\");
    system("if exist box2\\ rd /s /q box2\\");
    system("if exist box3\\ rd /s /q box3\\");
    //===================================================================================
    CreateDirectory("box1",NULL);   
    CreateDirectory("box2",NULL);
    CreateDirectory("box3",NULL);
    //===================================================================================
    // Наполнение одной директории файлами.
    ofstream out1("box1\\test1.txt");out1<<"Замена заданной текстовой строки на указанную текстовую строку";out1.close();
    ofstream out2("box1\\test2.txt");out2<<"Замена заданной текстовой строки на указанную текстовую строку";out2.close();
    ofstream out3("box1\\test3.txt");out3<<"Замена заданной текстовой строки на указанную текстовую строку";out3.close();
 
    ofstream out4("box2\\test1.txt");out4<<"Замена заданной текстовой строки на указанную текстовую строку";out4.close();
    ofstream out5("box2\\test2.txt");out5<<"Замена заданной текстовой строки на указанную текстовую строку";out5.close();
    ofstream out6("box2\\test3.txt");out6<<"Замена заданной текстовой строки на указанную текстовую строку";out6.close();
 
    ofstream out7("box3\\test1.txt");out7<<"Замена заданной текстовой строки на указанную текстовую строку";out7.close();
    ofstream out8("box3\\test2.txt");out8<<"Замена заданной текстовой строки на указанную текстовую строку";out8.close();
    ofstream out9("box3\\test3.txt");out9<<"Замена заданной текстовой строки на указанную текстовую строку";out9.close();
    //===================================================================================
    system("setlocal EnableDelayedExpansion ");
    string prm_1; // Переменная для параметра.
    string prm_2; // Переменная для параметра.
    string prm_3; // Переменная для параметра.
    cout << "-------------------------------------------------------------------------------" << endl;
    cout << "Введите строку для изменения:\t";
    getline(cin, prm_1);
    cout << "-------------------------------------------------------------------------------" << endl;
    cout << "Введите строку заменяющую заданную:\t";
    getline(cin, prm_2);
    cout << "-------------------------------------------------------------------------------" << endl;
    cout << "Введите имя директории:\t";
    getline(cin, prm_3);
    cout << "-------------------------------------------------------------------------------" << endl;
    string cmd_str1 = "for /f delims= %s in (.\\"; // Команда (+ путь).
    cmd_str1+=prm_3 + "\\test1.txt) do (\n" + "set string=%s\n" + "echo !string:" + prm_1 + "=" + prm_2 + "!>>temp.tmp\n" + ")"; 
    cout<<cmd_str1<<endl;
    system(cmd_str1.c_str());
    cout << "-------------------------------------------------------------------------------" << endl;  
    //===================================================================================
    string cmd_str2 = "copy temp.tmp .\\"; // Команда (+ путь).
    cmd_str2+=prm_3 + "\\test1.txt";
    system(cmd_str2.c_str());
    string cmd_str3 = "copy temp.tmp .\\"; // Команда (+ путь).
    cmd_str3+=prm_3 + "\\test2.txt";
    system(cmd_str3.c_str());
    string cmd_str4 = "copy temp.tmp .\\"; // Команда (+ путь).
    cmd_str4+=prm_3 + "\\test3.txt";
    system(cmd_str4.c_str());
    //===================================================================================
    system("pause");
}

проблема заключается в том, что делаю все через system(); и не имею понятия как правильно записать данную строку туда (допустим для файла test1.txt)
Bash
1
2
3
4
5
for /f "delims=" %%s in (.\%3\test1.txt) do ( 
set string=%%s  
echo !string:%1=%2!>>temp.tmp 
) 
move temp.tmp .\%3\test1.txt
Может кто то помочь алгоритмом там или другим (любым) вариантом решения проблемы ???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru