Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 21:27   #1
asheb
Новичок
Джуниор
 
Регистрация: 08.02.2010
Сообщений: 1
По умолчанию C# Представление txt файла как массива строк

Народ, нужна помощь!
Есть некий txt файл. Каким образом его можно запихнуть в массив, каждый элемент которого будет строкой файла?
asheb вне форума Ответить с цитированием
Старый 20.04.2010, 07:02   #2
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

ничего сложного:

Код:
//Подготовлено по материалам книги
//Эндрю Троелсен "C# и платформа .NET 3/0"

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace FileWorking {
    class Program {
        static void Main(string[] args) {
	    //Создаём файл
            StreamWriter NewFile = File.CreateText(@"D:\newfile.txt");
	    //Записываем в него строки
            NewFile.WriteLine("Первая строка");
            NewFile.WriteLine("Вторая строка");
            NewFile.Close();

	    //Открываем файл для текстового чтения
            StreamReader ReadFile = File.OpenText(@"D:\newfile.txt");
            string Input = null;
	    //Читаем из файла информацию
            while ((Input = ReadFile.ReadLine()) != null) {
                Console.WriteLine(Input);
            }

            Console.ReadLine();   //Ожидаем нажатие Any key

        }
    }
}
А вообще, поищи литературу в сети
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 20.04.2010, 07:41   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Skif-F, а что Вы собственно написали?!
автора топика интересует, можно ли одной командой прочитать текстовый файл в некий объект, после чего к каждой строке можно будет обращаться по индексу (по номеру строки!)
(если знаете Delphi - это TStringList: LoadFromFile('ИмяТекстовогоФайла'); )

А почему я пишу, потому что я меня этот вопрос тоже интересует, поэтому приглядываю за данной темой...

Последний раз редактировалось Serge_Bliznykov; 20.04.2010 в 07:43.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.04.2010, 07:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Я лично делал бы так:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;


namespace Файл_в_массив_строк
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader f=new StreamReader("C:\\temp\\__.asm");
            string s = f.ReadToEnd();
            var l=from w in s.Split('\n') select w;
            foreach(var K in l){
             Console.WriteLine(K);
            }
            Console.ReadKey();
        }
    }
}
Хотя это не совсем в массив, зато в набор, а набор тоже можно считать массивом.
А потом циклом по его элементу, получаемому в K - и далее лепи че хош.

Цитата:
Skif-F, а что Вы собственно написали?!
Кстати зря придираешся. Не видел я у автора такого уточнения чтоб одной командой.
I'm learning to live...

Последний раз редактировалось Stilet; 20.04.2010 в 08:00.
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 09:15   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Код:
StreamReader f = New StreamReader("test.txt");
string s = f.ReadToEnd();
List(Of String) text = New List(Of String);
foreach (string tmp in s) {
	text.Add(tmp);
}
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 20.04.2010 в 09:18.
RUSt88 вне форума Ответить с цитированием
Старый 20.04.2010, 09:51   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Кстати зря придираешся. Не видел я у автора такого уточнения чтоб одной командой.
может и зря... но ведь задача была получить к строкам доступ по индексу, а построчное чтение эту задачу не решает, в вот посты #4 и #5 решают эту задачу... всё это имхо!

Skif-F, если я был излишне резок, приношу свои извинения...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.04.2010, 09:55   #7
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Ну тогда вот так:
Код:
            StreamReader f = new StreamReader(@"D:\Текстовый документ.txt");
           string[] a = f.ReadToEnd().Split('\n');
Фактически одной командой

Цитата:
Skif-F, если я был излишне резок, приношу свои извинения...
да, ничего. проехали
Нет нерешаемых задач - есть недостаток времени и данных!

Последний раз редактировалось Stilet; 20.04.2010 в 10:06.
Skif-F вне форума Ответить с цитированием
Старый 20.04.2010, 11:51   #8
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 537
По умолчанию

Одной командой
Код:
string[] lines = File.ReadAllLines("file.txt");
m0nax вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как считывать с txt файла только новые данные Rustik2 Общие вопросы C/C++ 4 28.10.2009 10:42
Как оперативно считать данные из txt файла Rustik2 Общие вопросы C/C++ 8 10.10.2009 11:40
Как ускорить загрузку списка ListBox из txt-файла? Dux Компоненты Delphi 24 30.10.2008 19:02
Сформировать список строк L1, считав его из файла input.txt Gaika Помощь студентам 4 03.07.2008 06:33
как считать данные с Txt файла? Alar Общие вопросы Delphi 0 29.10.2006 20:12