1

Тема: Вивід тексту із файлу в MS Visual C++

Вітаю всіх!
Прошу вашої допомоги із лабораторною роботою.
Необхідно вивести текст із файлу text.h у вікно програми.
Програма в архіві, лабораторна саме по MS Visual C++
Ось код, який порадив адмін:

ifstream input_file("file"); 
char line[1024];
while (!input_file.eof()) { 
      input_file.getline(line, sizeof(line)); 
      cout << line << endl; 
}

Ось те, що радять зробити в завданні:

Прихований текст

4.Найдите метод InitInstance главного класса приложения в описанном выше примере он назывался CfirstProgApp. Напишите самостоятельно код который будет считывать из фала строку текста и затем выводить его на экран. Для работы с фалами возможно использование любых функций работы с файлами. Считанную строку поместите в переменную типа CString объявите ее как private  в классе главного окна программы в указанном примере это будет класс CfirstProgApp в фале CfirstProgApp.h. Например переменную можно объявит как
private:
CString str;
Для доступа к строке добавьте метод например GetStr (объявите его как public) осуществляющий доступ к закрытому члену данных, в методе OnDraw используете функцию AfxGetApp(); для получения указателя на главный объект программы например для класса CFАrstProgApp это можно записать так
    CFАrstProgApp * papp=( CFАrstProgApp *)AfxGetApp();
После чего строку можно считать как
CString sc=Papp-> GetStr ();

Поясніть популярно, який код і куди кидати?
Проект в архіві.

Post's attachments

l1.rar 1.81 mb, 508 downloads since 2012-10-09 

2

Re: Вивід тексту із файлу в MS Visual C++

В конструктор CL1App::CL1App() можна засунути код який буде записувати в CString str рядок з файлу. Код власне тей, який порадив адмін. Тільки замість cout, потрібно все пакувати в CString str.

Потім ще дописати функцію GetStr(), яка буде просто повертати значення str.
Не зовсім зрозуміло де буде виконуватись виклик GetStr() і куди далі записувати цей код.

3

Re: Вивід тексту із файлу в MS Visual C++

Клас      -> Метод  -> Функція
CL1View -> OnDraw -> void CL1View::OnDraw(CDC* pDC)
Я тільки почав вивчати C із C++ іще не знайомий, я прошу дати просто готову відповідь, якщо це можливо.
Просто розказати куди і який код вставляти.

4

Re: Вивід тексту із файлу в MS Visual C++

А яка версія Visual C++? Спробую дома поставити і запустити проект. Чисто по коду важкувато.

5

Re: Вивід тексту із файлу в MS Visual C++

MS Visual C++ 6.00

6 Востаннє редагувалося Ярослав (17.10.2012 01:58:36)

Re: Вивід тексту із файлу в MS Visual C++

Як вивести текст (рядок) із файлу у вікно програми створеної в середовищі MS Visual C++ 6.00:
1. Створіть новий робочий простір (проект) на основі MFC .exe
2. В теці проекту створіть файл text.h, напишіть в ньому певний текст
3. Відкриваємо вкладку класів в прикладі l1 classes -> В дереві класів відкриваємо CL1App -> Підклас InitInstance() -> В розділ CL1App construction додаємо код:

CL1App::CL1App()
{

    HANDLE hFile; 
    DWORD wmWritten; 
    char strVal[1024]; 
    hFile = CreateFile("text.h",GENERIC_READ|GENERIC_WRITE, 
    FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); 
    ReadFile(hFile,strVal,1024,&wmWritten,NULL); 

    CloseHandle(hFile);
    strVal[wmWritten] = '\0';
    str = strVal;

}

CString CL1App::GetStr() {
return str;
}

4. Дерево класів: l1 classes -> CL1View -> OnDraw(CDC *pDC) -> блок CL1View drawing -> код:

CL1Doc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    CRect r;
    GetClientRect( &r);
    pDC->SetTextColor(RGB(255,0,0));
    CL1App * papp=( CL1App *)AfxGetApp();
    pDC->TextOut(r.Width()/2,r.Height()/2, papp->GetStr());

5. Ідемо на вкладку FileView - > l1 files -> l1.cpp -> Перевіримо що тут міститься код із кроку 3
6. l1 files -> l1.h -> блок CL1App: -> код:

private:
CString str;

public:
    CL1App();

CString GetStr();

7. Запускаємо і тішимось.
Постскриптум: якщо щось забув - дивіться вихідний файл
Постпостскриптум: права на код Replace

Post's attachments

l1.rar 1.86 mb, 476 downloads since 2012-10-16