Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Dmitry_Gr
0 / 0 / 0
Регистрация: 07.06.2008
Сообщений: 14
#1

Как поместить содержимое текстового файла в Edit? - C++

16.06.2008, 02:23. Просмотров 1933. Ответов 12
Метки нет (Все метки)

Подскажите, пожалуйста, как проще всего поместить содержимое текстового файла в Edit или хотя бы просто добавить многострочный текст в контрол Edit.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2008, 02:23     Как поместить содержимое текстового файла в Edit?
Посмотрите здесь:

Содержимое текстового файла f, разделенное на строки, переписать в текстовый файл g C++
C++ как поместить всё содержимое файла txt в listbox?
C++ Используя стек, напечатать содержимое текстового файла
C++ Используя стек, напечатать содержимое текстового файла
Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива C++
C++ Зашифровать содержимое текстового файла
C++ Зашифровать содержимое текстового файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
16.06.2008, 13:04     Как поместить содержимое текстового файла в Edit? #2
Там по моему какое то сообщение есть, которое надо заслать. Но возможно это обман. А что примеров нет ? В Borland C++ точно есть пример с простым редактором текстовым. на всякий случай высылаю пример как файл прочитать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   string* read(void)
   {
 
     open();
     if (!hfile) return NULL;
 
         char*   filebuf ;
      string* answer = NULL;
 
       //read file
         DWORD  filesize = _llseek(hfile, 0L, FILE_END);
      if (!filesize) return NULL;
 
         //goto begin
      _llseek(hfile, 0L, FILE_BEGIN);
 
         filebuf = new char[filesize+1];
         ReadFile((HANDLE)hfile,(LPVOID)filebuf, filesize, &filesize,NULL);
 
      close();
         filebuf[filesize]=''
 
      answer = new string((char*)filebuf);
          delete[] filebuf;
         return answer;
   }
Имеей виду класс стрнг я тоже писал сам, и можно просто указатель на буфер возвращать
Dmitry_Gr
0 / 0 / 0
Регистрация: 07.06.2008
Сообщений: 14
17.06.2008, 02:20  [ТС]     Как поместить содержимое текстового файла в Edit? #3
Если можно, объясни пожалуйста поподробнее. Я только начал изучать VC++ (а вообще программирую на VB),поэтому многого не понял, например где указан путь к файлу(наверное open(...)?), класс стринг ты написал сам - а где взять стандартный?

С уважением, Дмитрий.
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
17.06.2008, 13:34     Как поместить содержимое текстового файла в Edit? #4
Моя вина я тебе только часть класа прислал
могу тебе по мылу прислать и полный клас файл и стринг. А вот насчёт стандартного не знаю я на апи пишу там стадартного нет
Dmitry_Gr
0 / 0 / 0
Регистрация: 07.06.2008
Сообщений: 14
17.06.2008, 21:32  [ТС]     Как поместить содержимое текстового файла в Edit? #5
Пришли, если не трудно.

Заранее, благодарен.
KillerBean
0 / 0 / 2
Регистрация: 18.05.2008
Сообщений: 45
18.06.2008, 04:16     Как поместить содержимое текстового файла в Edit? #6
Мне кажется, немного проще воспользоваться классами MFC
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
CFile f;//Объявление переменной типа 'Файл'
f.Open('c:\test.txt',CFile::modeRead);// Открываем файл для чтения
int len=f.GetLength();// Получаем длинну файла
char buf[30];//Будем читать файл блоками по 30 байт
int read=0;//Сколько символов прочитано
for(int i=0;i<=len/30;i++)
{
 read=f.Read(buf,30);//Считываем данные в буфер
 for(int k=0;k<read;k++) m_edit+=buf[k];/* В m_edit считываем
        прочитанные только в этой партии символы*/
};
f.Close();//Закрываем файл
UpdateData(0);//Синхронизируем содержание переменной и поля Edit
С уважением, KillerBean
AdvanceDT
0 / 0 / 0
Регистрация: 13.06.2008
Сообщений: 11
18.06.2008, 05:48     Как поместить содержимое текстового файла в Edit? #7
Или все-таки на API :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
BOOL FileRead (HWND hwndEdit, PSTR pstrFileName)
     {
     FILE  *file ;
     long int    iLength ;
     PSTR   pstrBuffer ;
     int    handle;
 
     handle    = open (pstrFileName, O_TEXT);
     if (handle==-1) {
      return 0;
     }
     iLength = filelength(handle) ;
     close (handle);
 
     if (NULL == (file = fopen (pstrFileName, 'rb')))
          return FALSE ;
 
     if (NULL == (pstrBuffer = (PSTR) malloc (iLength)))
          {
          fclose (file) ;
          return FALSE ;
          }
 
     fread (pstrBuffer, 1, iLength, file) ;
     fclose (file) ;
     pstrBuffer[iLength] = 0 ;
 
     SetWindowText (hwndEdit, pstrBuffer) ;
     free (pstrBuffer) ;
 
     return TRUE ;
     }
PS: hwndEdit- дескриптор EditBox-a
PPS:наслаждайся
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
18.06.2008, 06:06     Как поместить содержимое текстового файла в Edit? #8
Привет !

Вы что издеваетесь над человеком ???
Смотришь в MSDN и находишь :
C++
1
2
3
SendMessage(hWndEdit, WM_SETTEXT, 0, (LPARAM)str);
// где str - это буфер типа LPCSTR(или char*)
// откуда этот буфер взят не важно.
как файл считать:
да как угодно, кому как нравится: хочешь Сишные функции юзай, хочешь API-шные, хочешь обёртки из MFC ...
C++
1
2
3
4
5
6
7
8
9
// на API просто :
OFSTRUCT os;
HFILE hFile=OpenFile('filename', &os, OF_READ);
ASSERT(!hFile);
char *buf=new char[GetFileSize(hFile, NULL)];
DWORD adsize;
ReadFile(hFile, buf, GetFileSize(hFile, NULL), 
         &adsize, NULL);
// А далее можешь юзать этот буфер куда угодно ...
Удачи Andir !
AdvanceDT
0 / 0 / 0
Регистрация: 13.06.2008
Сообщений: 11
18.06.2008, 07:31     Как поместить содержимое текстового файла в Edit? #9
Нет, я конечно ни на что не претендую, но кто сказал, что человеку
нужно непременно на MFC писать? Если на MFC, то я согласен, но хочу заметить, что на Borland C++ Builer-е это делается еще проще:
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
  if (OpenDialog1->Execute()){
    FileName=OpenDialog1->FileName;
    Memo1->Lines->LoadFromFile(FileName);
    Caption='BelPas-'+FileName;
    Save1->Enabled=false;
  }
}
Так что все зависит от предпочтений))
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
18.06.2008, 08:57     Как поместить содержимое текстового файла в Edit? #10
2 AdvanceDT
;-) ...
А всё таки мой пример на API проще и универсальнее в применении (хотя не мультиплатформенный :-))...
после такого загруза, человек бросит программирование нафиг или будет на нас молится ;-).

2 Dmitry_Gr
Бери книжки, иди на www.firststeps.ru и учиться, учиться и ещё раз учиться ... а затем читать MSDN !!!

Удачи, если что обращайся, так нагрузим правильными ответами, что на полгода погрузишься в исследование чужих исходников ;-). Andir !
Dmitry_Gr
0 / 0 / 0
Регистрация: 07.06.2008
Сообщений: 14
19.06.2008, 00:05  [ТС]     Как поместить содержимое текстового файла в Edit? #11
Привет всем! Во первых я очень благодарен всем за ответы. Как правильно подметил Andir я в какой-то степени только 'на вас и молился' Во вторых у меня, естественно, возникли вопросы.

KillerBean, твой пример у меня получился. В принципе это, наверное, то, что я искал.Единственное 'но' путь к файлу нужно указывать полный, а не относительный...Возник вопрос, существует ли в C++ функция для определения каталога из которого запущена программа?

Andir, спасибо за ссылку - хороший сайт

Функции на API у меня не работают - пишет кучу ошибок(могу написать какие). У меня такое чувство, что нужно подключить какие-то файлы. Подскажите,пожалуйста.

С уважением, Dmitry_Gr
daxter
Сообщений: n/a
19.06.2008, 02:42     Как поместить содержимое текстового файла в Edit? #12
ну конечно для начала стоит подключить:
#include <windows.h>
а потом уже в зависимости от используемых функций
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2008, 03:20     Как поместить содержимое текстового файла в Edit?
Еще ссылки по теме:

C++ Переписать содержимое текстового файла в новый файл
C++ Вывести на экран содержимое текстового файла
Вывести содержимое текстового файла с пустыми строками C++
Составить программу, которая построчно печатает содержимое непустого текстового файла C++
C++ Составить программу, которая построчно печатает содержимое непустого текстового файла

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

Или воспользуйтесь поиском по форуму:
KillerBean
0 / 0 / 2
Регистрация: 18.05.2008
Сообщений: 45
19.06.2008, 03:20     Как поместить содержимое текстового файла в Edit? #13
2 Dmitry_Gr:
Путь к файлу можно указывать как относительный, так и абсолютный.
(Я почти всегда прислалаю код, копированный из окна VC)

Получить текущий каталог можно следующей инструкцией:
char* s;
GetCurrentDirectory(80,s);//80 - максимальная длина s

С уважением, KillerBean
Yandex
Объявления
19.06.2008, 03:20     Как поместить содержимое текстового файла в Edit?
Ответ Создать тему
Опции темы

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