Текстовый файл и построчная обработка
Цитата:
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ ) {StreamReader^ sr = gcnew StreamReader("D:\TEST.txt",System::Text::Encoding::Default); String^ line;
line = sr->TextReader::ReadLine();
line = sr->TextReader::ReadLine();
Имеем текстовый файл TEST.txt. Вышеуказанным способом читается строка из файла, анализируется ее содержимое и либо выводится в textBox1 (например вопрос анкеты)
Цитата:
textBox1->Text += line + Environment::NewLine;
, либо (по метке, например * * *, означающей конец вопроса) проверяется действие пользователя и требуется нажать, например button2. Так вот как это все грамотно сделать? В плане запихнуть ли всю обработку в Form1, или вынести в main и для каждого нового вопроса снова создавать Form1? Посоветуйте пожалуйста. Был у меня еще вариант считать целиком весь файл в безразмерный массив и оттуда в цикле построчно читать и анализировать строки... Но так и не нашел как это сделать для строк типа String^. С уважением, Евгений.
Цитата:
в безразмерный массив
Улыбнуло.
1 Строка№1
2 Строка№2
....
N Строка№N
Строки читаются из файла TEST.TXT с использованием StreamReader и TextReader::ReadLine();
N изначально не задано и зависит от файла TEST.TXT.
Все эти действия происходят по нажатии кнопки Button3....
Если еще короче, то "хочу чтобы я нажал на экране кнопочку, а потом нажал другую и у меня вывелась бы в textBox , например, третья строчка текстового файла"
Понятно. А если ещё короче, то тебе нужен код, да?
не флуди. нужен пример организации такого массива в vс++ или информация как это сделать. задачу описал чтобы было понятнее,что хочу,а не чтобы решать за меня.ясно?)
не флуди. нужен пример организации такого массива в vс++ или информация как это сделать. задачу описал чтобы было понятнее,что хочу,а не чтобы решать за меня.ясно?)
не флуди. нужен пример организации такого массива в vс++ или информация как это сделать. задачу описал чтобы было понятнее,что хочу,а не чтобы решать за меня.ясно?)
Чем вектор не подходит?
Не знаю, что именно вы имеете в виду.
Код:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
//...
unsigned int count = 0; // счетчик для вывода строк из вектора в Edit
vector <string> v; // собсно сам вектор
//...
void __fastcall TSDIAppForm::Button1Click(TObject *Sender)
{
ifstream in("in.txt",ios::in);
while(!in.eof())
{
char * tmp = new char [1024];
string tmpstr;
in.getline(tmp,1024,'\n');
tmpstr.append(tmp);
v.push_back(tmpstr); // добавляет tmpstr в конец вектора
}
}
//...
void __fastcall TSDIAppForm::Button2Click(TObject *Sender) // по кругу выводит последовательно строки из вектора в Edit
{
if(count < v.size())
{
Edit1->Text = (UnicodeString)v[count].c_str();
count++;
}
else
count = 0;
}
#include <fstream>
#include <vector>
#include <string>
//...
unsigned int count = 0; // счетчик для вывода строк из вектора в Edit
vector <string> v; // собсно сам вектор
//...
void __fastcall TSDIAppForm::Button1Click(TObject *Sender)
{
ifstream in("in.txt",ios::in);
while(!in.eof())
{
char * tmp = new char [1024];
string tmpstr;
in.getline(tmp,1024,'\n');
tmpstr.append(tmp);
v.push_back(tmpstr); // добавляет tmpstr в конец вектора
}
}
//...
void __fastcall TSDIAppForm::Button2Click(TObject *Sender) // по кругу выводит последовательно строки из вектора в Edit
{
if(count < v.size())
{
Edit1->Text = (UnicodeString)v[count].c_str();
count++;
}
else
count = 0;
}
Не во вред будет посмотреть что-нибудь вроде :
http://ru.wikipedia.org/wiki/Vector_(C%2B%2B)
http://www.cppreference.com/wiki/ru/container/vector/start
Извините, просто весь объем библиотек и классов тяжело одним махом освоить) тут подсказки, в каком направлении копать - просто неоценимы)
Еще раз спасибо)