Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++/CLI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Vitall
756 / 536 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
1

Использование File::ReadLines(string)

24.07.2011, 10:16. Просмотров 1962. Ответов 2
Метки нет (Все метки)

Добрый день ,никак не получается использовать метод File::ReadLines(string) из пространства имен System::IO .А нужно мне от этого метода что бы он считал строку из файла и присвоил ее скажем label1->Text .
Пытаюсь использовать этот метод так же как File::ReadAllText(string) :
C++
1
2
3
4
private: System::Void label1_Click(System::Object^  sender, System::EventArgs^  e) 
             {
                         label1->Text =System::IO::File::ReadAllText("555.txt");
             }
Но вижу в нем есть какие то отличия обозначенные как :
public:
static IEnumerable<String^>^ ReadLines(String^ path)

Что такое IEnumerable<String^>^ ?.Как правильно записать этот метод ?
Пишу в Visual Studio 2010 ,Windows Forms на С++
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2011, 10:16
Ответы с готовыми решениями:

String, использование строки, в качестве элементов массива
Добрый вечер, форумчане. Столкнулся с не большой проблемой на входе...

Как string присвоить String? И как из string перевести в char[]?
Как string присвоить String? И как из string перевести в char?

Преобразование между типами System::String, char*, wchar_t*, std::string и др.
При написании кода, взаимодействующего как с .NET и управляемым кодом, так и с...

Конфузы с русскими буквами при переводе из System::String^ в std::string
Использую такую конструкцию: string stdstr; for(int...

Как совместить строку типа String, имеющуюся в коде и функцию, принимающую std::string ?
Доброго времен суток)) У меня такая проблема: есть строка типа String^ , а...

2
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
24.07.2011, 13:48 2
Vitall, IEnumerable<T> это интерфейс для описания коллекций, для которых можно делать итераторы, сами итераторы наследуют интерфейс IEnumerator<T>. То есть ReadAllLines сразу же считывает весь файл в память и возвращает массив cli::array<String ^> строк файла, а ReadLines работает так, что он ничего сразу не достает, а считывание строки из файла производится тогда, когда идет обращение к итератору той коллекции, что этот метод возвращает.

Для наглядности пара примеров использования: чтобы вывести все строки файла с помощью ReadLines можно написать примерно следующее:

C++
1
2
3
4
5
6
7
// System::IO::File::ReadLines возвращает коллекцию IEnumerable<String ^> ^
// а по таким коллекциям можно ходить for each'ем, потому что предоставляется
// интерфейс для доступа через итераторы
for each(System::String ^ str in System::IO::File::ReadLines("test.txt"))
    {
    System::Console::WriteLine(str);
    }
А чтобы например считать одну строку из файла, можно поступить так
C++
1
2
3
4
5
6
7
8
9
10
void Method(System::Object ^ sender, System::EventArgs ^ e)
    {
    // получаем итератор в коллекцию строк
    System::Collections::Generic::IEnumerator<System::String ^> ^ iter =
        System::IO::File::ReadLines("test.txt")->GetEnumerator();
    // переводим итератор на первую строку файла
    it->MoveNext();
    // получаем строку, на которую указывает итератор и пишем куда надо
    label1->Text = it->Current;
    }
Для доступа к какой-то определенной строке легче будет написать пару велосипедов, чем обращаться к средствам LINQ, потому что делается это не так гладко, как в C#.
1
Vitall
756 / 536 / 80
Регистрация: 03.07.2011
Сообщений: 1,020
24.07.2011, 14:28  [ТС] 3
Ma3a,Да.. все сложно .тут чистым С++ и близко не пахнет,а я только с ним знаком ,я хотел так, на шару, прогу написать в Windows Forms .Но похоже еще до этого не одну собаку съесть придется
Спасибо за ответ !
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2011, 14:28

Как конвертировать System::String в std::string?
Как конвертировать system::string в std::string? А лучше сразу system::string в...

System::String^ vs stl::std::string
В консольном варианте есть программа, которая получает с экрана строку типа...

Конвертация из System::String^ в std::string
как перевести из System::String^ в std::srting


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

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

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