Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/26: Рейтинг темы: голосов - 26, средняя оценка - 4.65
SweetWind
1

Найти это слово и скопировать следующее за ним слово и записать все такие слова в отдельный текстовый файл

08.07.2009, 00:23. Показов 4770. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача "дан текстовый файл. Пользователь задаёт слово которое он хочет найти. Программа должна найти это слово и скопировать следующее за ним слово и записать все такие слова в отдельный текстовый файл."

В связи этой задачей у меня возник вопрос. Существует ли в С# такие вункции как копировать, вставить, заменить, определить длину слова. Если да то как их использовать. Если нет то как их реализовать?
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.07.2009, 00:23
Ответы с готовыми решениями:

Найти в заданном текстовом файле с русским текстом заданное слово и записать новый файл с номерами предложений, в которых это слово встречается
Найти в заданном текстовом файле с русским текстом заданное слово и записать новый файл с номерами...

Дан текстовый файл и слово. Выведите все строки файла, начинающиеся с заданного слова
Дан текстовый файл и слово. Выведите все строки файла, начинающиеся с заданного слова. ...

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

Дано слово р и файл f. Найти в файле f все слова, которые можно составить из букв слова р
Дано слово р и файл f. Найти в файле f все слова, которые можно составить из букв слова р.

10
Эксперт JavaЭксперт С++
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
08.07.2009, 16:07 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

SweetWind, создай в шарпе любую переменную типа string. Потом тупо набери ее имя и нажми точку. Ты увидиш все что можеш. В том числе и свойство Length(длинна строки), методы Substring(грубо говоря копирование), Insert(вставить), Replace(заменить). По поводу их использования там все интуитивно предельно ясно. Если нет, то я завтра отпишу готовую программу

Добавлено через 15 часов 33 минуты 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
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
 
namespace HLP_FileText_Console
{
    class Program
    {
        static string ReadFile()
        {
            string FText;
            StreamReader sr = new StreamReader("source.txt", Encoding.Default);
            FText = sr.ReadToEnd();
            sr.Close();
            return FText;
        }
 
        static void WriteFile(string text)
        {
            StreamWriter sw = new StreamWriter("rezult.txt", true, Encoding.Default);
            sw.WriteLine(text);
            sw.Close();
        }
 
        static void Main(string[] args)
        {
            string text = ReadFile();
            Console.Write("Input word >>    ");
            string word = Console.ReadLine();
            Console.WriteLine("\nSearch...");
            char[] delimiters = new char[] { ' ', ',', '.', ';', '?', '!', '\r', '\n', '\t', '\'', '"' };
            string[] mas = text.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
            int i = 0;
            while (mas[i].Equals(word) == false && i < mas.Length - 1)
                i++;
            int pos = i + 1;
            Console.WriteLine("Next word <<    {0}", mas[pos]);
            Console.WriteLine("\nCopy...");
            int count = 0;
            for (int j = 0; j < mas.Length; ++j)
                if(mas[j].Equals(mas[pos]))
                    count++;
            Console.WriteLine("Count <<    {0}", count);
            Console.WriteLine("\nWrite...");
            for (int j = 0; j < count; ++j)
                WriteFile(mas[pos]);
            Console.Write("Complete\n\nEnd...");
            Console.Read();
        }
    }
}
Если будут вопросы - обращайся
2
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
17.07.2009, 16:22 3
Здравствуйте! У меня, собственно, вопрос по StreamReader.ReadToEnd(). Где-то я какую-то тонкость не догоняю...

Я работаю с БД, а строку подключения к ней храню в текстовом файле string.txt. Сейчас под рукой нет кода, но что-то вроде этого:

C#
1
2
3
4
5
public string strCon;
...
FileStream fsStrCon = new FileStream("string.txt",FileMode.Open);
StreamReader srStrCon = new StreamReader(fsStrCon);
strCon = srStrCon.ReadToEnd();
И потом строку strCon использую при подключении к БД, в коннекторе, где до этого была сгенерированная строка подключения (я ее скопировала и вставила в свой текстовый файл, поэтому в самой строке ошибки быть не может). Какую точно ошибку выдает - не скажу, потому что при подключении я ловлю исключение и не пробовала без этого пока. Могу в понедельник точно сказать.

Тогда я решила прямо там же вывести содержимое strCon в Form1.textBox1 таким образом:

C#
1
2
strCon = srStrCon.ReadToEnd();
this.textBox1.Text = strCon;
На это он выдает что нужно использовать new и вообще...

Честно, не понимаю в чем проблема - и то, и другое - string, в чем тогда проблема?

Прога на работе, а там нет интернета, поэтому все по памяти пишу.

Заранее благодарю за ответ!
0
Эксперт JavaЭксперт С++
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
17.07.2009, 18:49 4
а не пробовала при подключении когда передаеш в OleDbConnection свою строку подключения попробуй перед ней поставить @. Возможно причина в \\
0
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
17.07.2009, 19:01 5
Хм... Сейчас попробовала сделать тоже самое дома, все работает... Теперь я еще больше ничего не понимаю! И тут, как я думаю, кроме меня самой, уже никто не поможет. Наверное, надо просто внимательно все проверить.

------------------------

Я использую sqlConnection. Вот на \\ у меня тоже есть подозрение. Но! Почему дома все работает - ума не приложу!

Добавлено через 4 минуты 3 секунды
Да вообще бог с ним, с коннектером, я даже в textBox1 не могу вывести!
0
Эксперт JavaЭксперт С++
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
17.07.2009, 20:06 6
ну так оно и ругается потому, что не воспринимает такую запись, например: "C:\\database.mde". Он начинает рассматривать \d как управляющий символ. В шарпе специально придумали такую вещь как @, чтобы показать, что это путь, а не просто строка
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
20.07.2009, 03:16 7
Цитата Сообщение от Лакшми Посмотреть сообщение
Какую точно ошибку выдает - не скажу, потому что при подключении я ловлю исключение и не пробовала без этого пока.
Если у вас Visual Studio, то она автоматически показывает исключение.
Или можно поймать вот так:
C#
1
2
3
4
5
6
7
try
{
    //проблемный код
}catch(Exception exc)
{
    MessageBox.Show(exc.Message);
}
0
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
20.07.2009, 13:23 8
Ага, именно так я его и ловлю и вывожу свое сообщение. Убрать защитный код пока не пробовала.

Сегодня на работе еще раз все проверила - все один в один, не пойму в чем фишка... Ладно, если найду решение, обязательно напишу, вдруг кому пригодится.
0
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
20.07.2009, 13:58 9
Если ставите @, то уже не нужно ставить двойный слеши, а просто
D:\MyDir\MyFile.MyExt
0
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
20.07.2009, 18:08 10
Спасибо, попробую с @, но особых надежд не питаю, потому что дома и без @ все работает.
0
1923 / 428 / 41
Регистрация: 12.07.2007
Сообщений: 2,062
22.07.2009, 03:48 11
Цитата Сообщение от Лакшми Посмотреть сообщение
Ага, именно так я его и ловлю и вывожу свое сообщение.
Ну дык текст сообщения покажите.
Также неплохо посмотреть на содержимое строки подключения.
0
22.07.2009, 03:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2009, 03:48
Помогаю со студенческими работами здесь

Удалить первое слово и все такие же слова в строке
Используя командную строку ввести строку. Удалить первое слово и все такие же слова. Слова...

Скопировать второе слово из каждой строки и вставить их в новый текстовый файл
Добрый вечер, помогите, пожалуйста, в реализации простенькой программы: На входе .txt файл, в...

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

дан текстовый файл.перенести в текстовый файл все строки, содержащие заданное слово
помогите пожалуйста решить задачу... условие:дан текстовый файл.перенести в текстовый файл все...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru