Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2016, 01:25   #1
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию заменить текст и найти совпадение

Такой код значит :
Код:
string text = File.ReadAllText(@"C:\Users\LowFrequencySound\Desktop\data.txt");
text = text.Replace("aa", "ab");
File.WriteAllText(@"C:\Users\LowFrequencySound\Desktop\data.txt", text);
он делает замену, кароче тут все ясно. Проблема в том что надо менять текст пока не ...условие if();
если написать код таки образом:
Код:
string text = File.ReadAllText(@"C:\Users\LowFrequencySound\Desktop\data.txt");
text = text.Replace("aa", "ab");
text = text.Replace("ab", "ac");
File.WriteAllText(@"C:\Users\LowFrequencySound\Desktop\data.txt", text);
то ничего не будет, то есть есть другой тхт в котором есть простая строка "tt"
софт считывает эту строку:
Код:
StreamReader sr1 = new StreamReader(@"C:\Users\LowFrequencySound\Desktop\naiti stroku.txt");
            string aca = sr1.ReadLine();
и тут условие если нашлась строка то показывает софт ее, если нет то "строка не найдена" ......как-то так, не знаю как сделать
komra2 вне форума Ответить с цитированием
Старый 08.11.2016, 08:22   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Код:
if (aca.IndexOf("tt") == -1)
{
  // Выводим сообщение, что строка не найдена
}
else
{
// в aca содержится строка tt
}
pu4koff вне форума Ответить с цитированием
Старый 08.11.2016, 09:40   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

pu4koff, я думаю, что ему нужно просто перебор комбинаций
aa-ab-ac-ad...-az-ba-bb-bc-bd-....-tt
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2016, 09:59   #4
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
pu4koff, я думаю, что ему нужно просто перебор комбинаций
aa-ab-ac-ad...-az-ba-bb-bc-bd-....-tt
не угадал!
komra2 вне форума Ответить с цитированием
Старый 08.11.2016, 10:00   #5
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Код:
if (aca.IndexOf("tt") == -1)
{
  // Выводим сообщение, что строка не найдена
}
else
{
// в aca содержится строка tt
}
как змену текста сделать дважды ?
komra2 вне форума Ответить с цитированием
Старый 08.11.2016, 10:06   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от komra2 Посмотреть сообщение
как змену текста сделать дважды ?
так, как у Вас написано:
Цитата:
Код:
text = text.Replace("aa", "ab");
text = text.Replace("ab", "ac");
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2016, 10:41   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
так, как у Вас написано:
это тоже, наверное, частный вопрос, скорее всего там не только 2 подстроки для замены.

можно в цикле, например.
Код:
string[,] Library = {{"aa","ab"},{"ab","ac"},{"ac","ad"},{"ad","af"}};
            string text = "aa ab ac";
            Console.WriteLine(text);
            for (int indx=3;indx>=0;indx--)
            {
                if(text.IndexOf(Library[indx,0]) != -1);
                {
                    text = text.Replace(Library[indx,0],Library[indx,1]);
                }
            }
            Console.WriteLine(text);
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 08.11.2016, 11:18   #8
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

скорее всего там не только 2 подстроки для замены - ток две, не угадали
komra2 вне форума Ответить с цитированием
Старый 08.11.2016, 11:42   #9
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

а как сделать через while, я просто первое про него подумал, мол, пока не нашло совпадение, меняется все время буква))
komra2 вне форума Ответить с цитированием
Старый 08.11.2016, 11:49   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от komra2 Посмотреть сообщение
а как сделать через while, я просто первое про него подумал, мол, пока не нашло совпадение, меняется все время буква))
Код:
while (text.IndexOf("tt") == -1)
{
  тут меняете в text всё, что Вам надо, но обязательно так, 
       чтобы в конце концов поменялось на tt, иначе получите бесконечный цикл
}

забавно писать бессмысленный код, не понимая сути задачи.
здесь есть что-то от дзен...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заменить абракадабру на русский текст VETER15 Общие вопросы Delphi 24 11.09.2013 17:12
Найти и заменить текст в шаблоне rtf Oleg0405 C++ Builder 1 05.11.2012 18:16
дан текст.конец ввода f1 заменить все . на ! и найти их количество Casper098 Помощь студентам 1 01.12.2011 06:28
Заменить HTML текст на открытой странице LEXX_RUS Работа с сетью в Delphi 1 05.08.2009 09:07
Заменить выделенный текст на свой в Блокноте Brother Win Api 6 13.11.2007 14:26