1

Тема: Перенесення з консолі на Windows Form

Спочатку написав программу в консолі, тепер намагаюсь перенести на Windows Form. Виникла проблема з діями кнопок, не можу підключити дію до них. Допоможіть будь-ласка написати нормально щоб читало та виводило текст з файлу. З Windows Form працюю вперше

void DataReading(Data1* (&d), int& n, string FileName)
{
    //Поток зчитування
    ifstream reading(FileName);

    if (reading)
    {
        Marc marca;
        Date date;
        Fuel fuel;
        Сondition condition;
        Price price;

        reading >> n;
        _actions = n;
        d = new Data1[n];

        for (int i = 0; i < n; i++)
        {
            reading >> marca.marca;
            reading >> date.day >> date.month >> date.year;
            reading >> fuel.in >> fuel.out;
            reading >> condition.condition;
            reading >> price.prices;

            d[i].DataEntry(marca, date, fuel, condition, price);
        }

        MessageBox::Show("Open");
    }
    else
        MessageBox::Show("Error");
        MessageBox::Show(Convert::ToString(n));

    reading.close();
}

void Print(Data1* d, int n) // це з консольного залишилось
{
    for (int i = 0; i < n; i++)
    {
        cout << "Данні №" << i + 1 << endl;

        d[i].Print();
        cout << "__________________________________________________________________" << endl;
    }
}

System::Void CursGraf::MyForm::відкритиToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
    OpenFileDialog^ openDlg = gcnew OpenFileDialog();
    openDlg->Filter = "Text Files(*.txt;|*.txt;|All files (*.*)|*.*";

    if (DialogResult == openDlg->ShowDialog())
    {
        String^ fileName = openDlg->FileName;
        DataReading(d, _size, msclr::interop::marshal_as<std::string>(fileName));
    }
    return System::Void();
}

System::Void CursGraf::MyForm::buttonRead_Click(System::Object^ sender, System::EventArgs^ e)
{
    //Вивід тексту в textBox1
    return System::Void();
}

2

Re: Перенесення з консолі на Windows Form

У вас на формі мабуть лежить якийсь контрол для виводу результатів. У нього мають бути методи для додавання в нього якихось даних. Наприклад у контрола для вводу багаторядкового тексту буде метод для додавання нового рядка. Вам лише треба сформувати рядок на основі ваших даних.

3

Re: Перенесення з консолі на Windows Form

Не розумію що ви намагаєтесь сказати, можете навести приклад в коді як це повинно виглядати?

4

Re: Перенесення з консолі на Windows Form

Прикладів купа в інтернеті. Ви гуглити не вмієте? Це не до нас, тут форум програмістів.
Ось вам приклад роботи з textbox.

5

Re: Перенесення з консолі на Windows Form

koala написав:

Прикладів купа в інтернеті. Ви гуглити не вмієте? Це не до нас, тут форум програмістів.
Ось вам приклад роботи з textbox.

Програмістів які задають питання про цикли? Я питав не стільки про вивід як про те що в мене не працюють змінні так як треба і не працює DataReading хоча в консолі все гаразд. Я й питаю що не так і як правильно?

6

Re: Перенесення з консолі на Windows Form

Woulker написав:

Я питав не стільки про вивід як про те що в мене не працюють змінні так як треба

Ви про це досі не питали. І зараз не спитали. Змінні призначені для зберігання даних. Які саме дані ви намагаєтеся зберігати в яких саме змінних, і як саме ви перевірили, що вони цього не роблять? Чи ви намагаєтеся змусити змінні робити щось інше, окрім зберігання даних? Тоді проблема не в тому, що змінні "не працюють", а в тому, що ви не знаєте, що змінні роблять.

Woulker написав:

і не працює DataReading хоча в консолі все гаразд

Не описуйте, чого код НЕ робить. Описуйте, що ви очікуєте і що відбувається натомість.
Ось тут є опис, як питати, щоб можна було відповісти.

Подякували: Woulker1

7

Re: Перенесення з консолі на Windows Form

І так, програмісти-початківці іноді питають про цикли. Це нормально.

8

Re: Перенесення з консолі на Windows Form

Woulker написав:

Не розумію що ви намагаєтесь сказати, можете навести приклад в коді як це повинно виглядати?

у вас на формі має бути кнопка, ну і текст бокс для виводу результату

p.s C++ незнаю, зате гуглить умію  :)

спробуйте такі дії:
створити форму з 1 текстбоксом та 1 кнопкою
створити файл з 1-м словом
створити подію для кнопки
далі спробуйте прочитати файл і записати в текстбокс

коли все вийде, додавайте структури, і дойдіть до етапу коли все перестане працювати
тоді можете звернутись (прикладу не дам, на linux сижу MS Visual Studio не маю)

додавання івенту кліка мишки https://stackoverflow.com/questions/250 … n-visual-c
читання файлу https://stackoverflow.com/questions/425 … rom-a-file
додавання тексту до текстбоксу https://stackoverflow.com/questions/125 … x#12538062

бажаємо успіхів
можете ще в інтернеті щось пошукати :)
далі самі зрозумієте

Подякували: Woulker1