Naman2007 Ответов: 6

Как прочитать текстовый файл и добавить данные в массив int в C#?


Я пытаюсь прочитать текстовый файл, который содержит числа, разделенные запятой. Мне нужно преобразовать его в массив int, а затем отобразить значения массива

Содержимое текстового файла: 1,2,2,1,3

как мне это сделать?

6 Ответов

Рейтинг:
47

Hitesh Gohel

Привет,

Пожалуйста, попробуйте этот код..
Страница in. aspx

<div  runat="server" id="DisplayText"></div>



В .CS страницы
List<int> column0 = new List<int>();
using (Stream stream = File.Open(@"D:\def.txt", FileMode.Open))

using (TextReader sr = new StreamReader(stream, Encoding.UTF8))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        string[] arr = line.Trim().Split(',');
        foreach (var item in arr)
        {
            column0.Add(Convert.ToInt32(item));
        }
    }

    int[] intArray = column0.ToArray();
    if (intArray.Count() > 0)
    {
        foreach (var itemint in intArray)
        {
            Label display = new Label();
            display.Text = itemint.ToString() + ",";
            DisplayText.Controls.Add(display);
        }
    }
}


Рейтинг:
2

Richard MacCutchan

Прочтите текст в string переменная и использование Split() метод создания массива из отдельных элементов. Затем используйте что-то вроде Int32.Parse() чтобы преобразовать каждый элемент в целое число и сохранить в новом массиве.


Рейтинг:
2

ahmedfaruk88

Прочтите содержимое текстового файла с помощью системы.Пространство имен IO и файл.Метод ReadAllText () и сохраните его в строковой переменной. Разделите строку на (,). Затем выполните цикл через строку с помощью конструкции for.. loop и извлеките ее в целочисленный массив, как вы хотели.

Надеюсь, это поможет. Если у вас есть какая-либо дополнительная помощь, попробуйте опубликовать то, чего вы достигли до сих пор, братья могут посмотреть на то, что вы делаете неправильно, и помочь вам.


Рейтинг:
2

Ram424

строка str= файл.ReadAllText(путь);
int [] result=new int[100];
для (тип int я = 0; стр я &л;.Сплит(',').Длина; i++)
{
результат[i] = преобразование.ToInt32 (str. Split (',') [i]);


}


Рейтинг:
1

Naman2007

List<int> column0 = new List<int>();
                using (Stream stream = File.Open(@"C:\def.txt", FileMode.Open))
                using (TextReader sr = new StreamReader(stream, Encoding.UTF8))
                    {
                        string line;
                        while ((line = sr.ReadLine()) != null)
                            {
                                 string[] arr = line.Split(',');
                                 ....................
                                 // how do i code here


                            }


Рейтинг:
0

OriginalGriff

Есть несколько способов сделать это:
1) Прочитайте файл как строку и используйте строку.Разделить, чтобы разбить его на числа:

string s = File.ReadAllText(path);
string[] numbers = s.Split(',');
Затем вы можете перебирать каждое число и использовать int. Parse для преобразования строкового значения в целое число и хранить его в массиве или списке< int>
2) обрабатывайте файл как значения, разделенные запятыми, и используйте один из многих доступных конвертеров. Вот один из них: Быстрый читатель CSV[^]

Первый прост в реализации, второй требует немного больше работы. Но стоит рассмотреть второй вариант, потому что он может быть проще в использовании в будущем, если ваши данные по какой-либо причине изменятся.