Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 23
1

Преобразовать вводимое string в нужное string[]

24.03.2015, 21:42. Просмотров 1104. Ответов 15
Метки нет (Все метки)

Господа, подскажите, пожалуйста: есть класс, который работает с массивом и еще со всякой мелочью, в классе есть поток, который записывает вводимую строку в текстовый файл, но я не могу ввести свою строку в консоли, потому что не понимаю, как мне написать код так, чтобы преобразовать вводимое string в нужное string[]?
Например:

C#
1
2
3
4
5
6
7
8
9
10
11
class Shtototam
{
    string[] array = null;
 
    public void WriteArray()
        {
            StreamWriter T = new StreamWriter(new FileStream("Text.txt", FileMode.Create, FileAccess.Write));
            array = ???
            T.Write(array);
        }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2015, 21:42
Ответы с готовыми решениями:

Не удается неявно преобразовать string в string[]
Пишет, что не удается не удается неявно преобразовать тип string в string Надо считать строки с...

Как преобразовать string[] в string
второй день изучаю C#, так что вопрос скорее всего заезженный нужно, чтобы при выборе нескольких...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Здравствуйте! По C# есть задачка, с которой я так и не разобрался :( Задача: Создайте...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population....

15
Warrior
496 / 423 / 177
Регистрация: 23.11.2014
Сообщений: 932
24.03.2015, 21:55 2
C#
1
File.WriteAllText("file.txt","Обычная строка записанна в файл");
Вот этот метод может записать строку

Или вы это хотели?

C#
1
2
3
4
5
6
var stringss = new[] {"одна строка", "другая строка"};
 
            using (StreamWriter T = new StreamWriter(new FileStream("Text.txt", FileMode.Create, FileAccess.Write)))
            {
               T.Write(string.Join(" ",stringss));
            }
0
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
24.03.2015, 21:59 3
сделай из массива строку в один прием например так
C#
1
 string text = string.Join(" ", array);
0
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 23
24.03.2015, 23:00  [ТС] 4
Не, все не то, проблема в том, все, что я ввожу, тип string, мне в коде надо написать, что ввожу в консоль не string, а string[], типа как
C#
1
 a = Convert.ToInt32(Console.ReadLine());
чтение из клавиатуры, надо сделать также, но с массивом string[]
0
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
24.03.2015, 23:02 5
Цитата Сообщение от Aenelhells Посмотреть сообщение
Не, все не то, проблема в том, все, что я ввожу, тип string, мне в коде надо написать, что ввожу в консоль не string, а string[], типа как
C#
1
 a = Convert.ToInt32(Console.ReadLine());
чтение из клавиатуры, надо сделать также, но с массивом string[]
а зачем так? чем просто строка не устраивает?
0
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 23
24.03.2015, 23:08  [ТС] 6
Потому что я буду брать индексовые значения из этого массива
0
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
24.03.2015, 23:16 7
получи строку с клавы потом разбей ее через пробел, такой вариант подойдет? тогда ты сможешь обращаться к каждому слову. делаеться это так
C#
1
string[] strMass = Console.ReadLine().Split(' ');
0
113 / 114 / 52
Регистрация: 19.12.2014
Сообщений: 612
25.03.2015, 01:53 8
Aenelhells, может тогда работать со списком? добавление в массив строк и индексация элементов, мне кажется будет самое то
0
52 / 52 / 18
Регистрация: 20.03.2015
Сообщений: 278
25.03.2015, 08:42 9
Цитата Сообщение от lokilo Посмотреть сообщение
Aenelhells, может тогда работать со списком? добавление в массив строк и индексация элементов, мне кажется будет самое то
Не моу точно сказать так как не понятна задача в целом. Как разом перекинуть массив в файл написали. потом вылезла потребность получить массив с клавиатуры. давай полный вариант задачи.
0
113 / 114 / 52
Регистрация: 19.12.2014
Сообщений: 612
25.03.2015, 09:53 10
Prizrak86, вот код для добавления в список, а потом вывести определенную строку на экран
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
static void Main(string[] args)
        {
           
        var list = new List<string>();
 
            bool flag;
            do
            {
                Console.WriteLine("Введите слово:");
                var str = Console.ReadLine();
 
                Console.Write("Добавить его в список?(да/нет):");
                var add = Console.ReadLine();
                if (add == "да")
                {
                    list.Add(str);
                }
 
                Console.Write("Повторить ввод?(да/нет):");
                var repeat = Console.ReadLine();
                flag = repeat != "да";
            } while (!flag);
 
            
            int i;
            do
            {
                Console.Write("Какую строку вывести?:");
                i = Int32.Parse(Console.ReadLine());
                if (i >= list.Count)
                
                    Console.Write("Cтроки не существует! Повторить ввод?(да/нет):");
 
                
                var repeat = Console.ReadLine();
                flag = repeat != "да";
            } while (!flag);
            Console.Write(list[i]);
            Console.ReadKey();
        
        }
Добавлено через 12 минут
Ну или так
Кликните здесь для просмотра всего текста
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
bool flag;
            do
            {
                Console.WriteLine("Введите слово:");
                var str = Console.ReadLine();
 
                Console.Write("Добавить его в список?(да/нет):");
                var add = Console.ReadLine();
                if (add == "да")
                {
                    list.Add(str);
                }
 
                Console.Write("Повторить ввод?(да/нет):");
                var repeat = Console.ReadLine();
                flag = repeat != "да";
            } while (!flag);
 
            
            int i;
           do{
                Console.Write("Какую строку вывести?:");
                i = Int32.Parse(Console.ReadLine());
                if (i < list.Count)
                {
                    Console.Write(list[i]);
                    Console.ReadKey();
                }
 
                else
                {
                    Console.Write("Cтроки не существует! Повторить ввод?(да/нет):");
                }
 
                    var repeat = Console.ReadLine();
                    flag = repeat != "да";
                } while (!flag) ;
            
            Console.ReadKey();
0
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 23
25.03.2015, 12:33  [ТС] 11
Полный вариант задачи: ввести в поток строчный массив, чтобы сразу его записывать в файл, без выделения памяти для этого, ввод и работа со строкой заключается в отдельном классе. Как мне изначально записать через метод строку в текстовый файл?
0
113 / 114 / 52
Регистрация: 19.12.2014
Сообщений: 612
25.03.2015, 13:00 12
Aenelhells,
Цитата Сообщение от Aenelhells Посмотреть сообщение
Как мне изначально записать через метод строку в текстовый файл?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Program
    {
        static void Main(string[] args)
        {
            
            string line = Console.ReadLine();
            Program f = new Program();
            f.zapis(line);
            Console.ReadKey();
 
 
        }
 
 
        public void zapis(string str){
 
            StreamWriter sw = new StreamWriter(@"Путь\Text.txt", true);
            sw.WriteLine(str);
            sw.Close();
 
        }
0
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 23
25.03.2015, 19:15  [ТС] 13
Определил проблему, она была не в записи:

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
class VerbSearch
    {
        string[] array = null;
 
        public string[] Array { get { return array; } }
 
        public void WriteArray()
        {
            StreamWriter T = new StreamWriter(new FileStream("Text.txt", FileMode.Create, FileAccess.Write));
            array = Console.ReadLine().Split(' ');
            T.Write(array);
            for (int i = 0; i < array[i].Length; i++)
                Console.Write(array[i]);
            
            T.Close();
        }
    }
static void Main(string[] args)
        {
            Console.Write("Запишите текст в файл: ");
 
            VerbSearch v = new VerbSearch();
          
            v.WriteArray();
Отладчик останавливает программу на выдаче, как исправить, из-за чего не работает?
0
113 / 114 / 52
Регистрация: 19.12.2014
Сообщений: 612
25.03.2015, 19:24 14
Лучший ответ Сообщение было отмечено Aenelhells как решение

Решение

Aenelhells, не верно вы определили проблему
C#
1
2
3
4
5
6
7
8
StreamWriter T = new StreamWriter(new FileStream("Text.txt", FileMode.Create, FileAccess.Write));
            array = Console.ReadLine().Split(' ');
            T.Write(array);
            for (int i = 0; i < array[i]/*Кто так делает? Нельзя так делать!*/.Length; i++)
{
                Console.Write(array[i]);
          }  
            T.Close();
Вот так попробуйте
C#
1
2
for (int i = 0; i < array.Length; i++)
                Console.WriteLine(array[i]);
1
0 / 0 / 0
Регистрация: 25.09.2014
Сообщений: 23
25.03.2015, 21:14  [ТС] 15
Спасибо огромное, тормознул серьезно =)
0
113 / 114 / 52
Регистрация: 19.12.2014
Сообщений: 612
26.03.2015, 02:31 16
Aenelhells, всегда пожалуйста)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2015, 02:31

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

Как из List<string> достать нужное слово
Здравствуйте, есть задачка! Во всех вопросительных предложениях текста найти и напечатать без...

Не удается преобразовать из "string" в System.Preficate<string>"
Хочу сделать некий &quot;конвертер&quot;, который превращает строку &quot;руддщ&quot; в &quot;hello&quot;, возникла ошибка &quot;не...

Как использовать String.Substring(string, string)?
Есть у String метод Substring(int, int), но он принимает только числа. Я видел на видео, что можно...

Как преобразовать List<List<string>> в IList<IList<string>>
Добрый день! Возникла задача преобразования листа в интерфейс листа. Не подскажите как грамотно...

Как исправить ошибку 'Не удается неявно преобразовать тип "System.Collections.Generic.IEnumerable<string>" в "string"'?
Не удается неявно преобразовать тип &quot;System.Collections.Generic.IEnumerable&lt;string&gt;&quot; в &quot;string&quot;. ...

List<string, string, string> есть ли в C# что-то подобное?
Мне надо добавить в List не только имя файла, но и некоторые строки из этого файла. Т.е. например,...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

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