Прежде всего позвольте мне поблагодарить вас всех за то, что вы являетесь частью этого сайта, я уже получил от него столько полезной информации.включая некоторые базовые разборы текстовых файлов в массивах, но теперь я хочу пойти дальше.
У меня есть текстовый файл, который выглядит примерно так
Start Section 1 - foods
apple
bannana
pear
pineapple
orange
end section 1
Start section 2 - animals
dog
cat
horse
cow
end section 2
, что я хочу сделать, это с помощью одного чтения файла скопировать данные из раздела 1 в массив с именем«Еда» и раздел 2 в массиве «животные»
Теперь я могу заставить его работать, используя новый цикл для каждого раздела, закрывая и открывая файл каждый раз, повторяя цикл, пока не найду разделЯ хочу и создание массива.
Но я подумал, что должен быть способ прочитать каждый раздел в отдельный массив за один раз, экономя время.
, поэтому мой текущий код -
List<string> typel = new List<string>();
using (StreamReader reader = new StreamReader("types.txt")) // opens file using streamreader
{
string line; // reads line by line in to varible "line"
while ((line = reader.ReadLine()) != null) // loops untill it reaches an empty line
{
typel.Add(line); // adds the line to the list varible "typel"
}
}
Console.WriteLine(typel[1]); // test to see if list is beeing incremented
string[] type = typel.ToArray(); //converts the list to a true array
Console.WriteLine(type.Length); // returns the number of elements of the array created.
, который предназначен для простого текстового файла без разделов, а только для списка значений, использование списка казалось хорошим способом справиться с неизвестными длинами массивов.
Мне также было интересно, как поступить с первым значением.
например, если я сделаю
while ((line = reader.ReadLine()) != Start Section 1 - foods)
{
}
while ((line = reader.ReadLine()) != end Section 1)
{
foods.Add(line);
}
...
....
, я получу «начало раздела 1 - продукты» в качестве одного из элементов массива.Я могу удалить его с помощью кода, но есть ли простой способ избежать этого, чтобы заполнить только элементы списка?
Приветствия и еще раз спасибо за помощь.Здорово вернуться к программированию через много-много лет.
Аарон