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

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

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

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

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

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

Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2008, 02:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как поместить содержимое текстового файла в Edit? (C++):

как поместить всё содержимое файла txt в listbox? - C++
как поместить всё содержимое файла txt в listbox на visual C++ Добавлено через 11 часов 2 минуты как считать текст по-символьно в...

Добавить в конец первого текстового файла содержимое второго текстового файла - C++
Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла.

Зашифровать содержимое текстового файла - C++
Програму сделайте...

Зашифровать содержимое текстового файла - C++
Зашифровать содержимое текстового файла с помощью заданного с клавиатуры пользователем строки выполняет роль ключа. В процессе шифрования...

Считать из текстового файла рандомные числа и поместить в отдельный массив - C++
Помогите,не могу разобраться.Вот у меня есть текстовой файл,в нем скажем есть 30 000 разных чисел,как мне считать из файла рандомных 800...

Вывести на экран содержимое текстового файла - C++
Написать программу работающую в текстовом режиме (Ширина экрана равна 80 столбцов)которая должна выводить на экран текстовый файл(имя...

12
simplepilot
1 / 1 / 0
Регистрация: 22.07.2007
Сообщений: 366
16.06.2008, 13:04 #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;
   }
Имеей виду класс стрнг я тоже писал сам, и можно просто указатель на буфер возвращать
0
Dmitry_Gr
0 / 0 / 0
Регистрация: 07.06.2008
Сообщений: 14
17.06.2008, 02:20  [ТС] #3
Если можно, объясни пожалуйста поподробнее. Я только начал изучать VC++ (а вообще программирую на VB),поэтому многого не понял, например где указан путь к файлу(наверное open(...)?), класс стринг ты написал сам - а где взять стандартный?

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

Заранее, благодарен.
0
KillerBean
0 / 0 / 2
Регистрация: 18.05.2008
Сообщений: 45
18.06.2008, 04:16 #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
0
AdvanceDT
0 / 0 / 0
Регистрация: 13.06.2008
Сообщений: 11
18.06.2008, 05:48 #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:наслаждайся
0
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
18.06.2008, 06:06 #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 !
0
AdvanceDT
0 / 0 / 0
Регистрация: 13.06.2008
Сообщений: 11
18.06.2008, 07:31 #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;
  }
}
Так что все зависит от предпочтений))
0
Andir
0 / 0 / 0
Регистрация: 04.11.2007
Сообщений: 145
18.06.2008, 08:57 #10
2 AdvanceDT
;-) ...
А всё таки мой пример на API проще и универсальнее в применении (хотя не мультиплатформенный :-))...
после такого загруза, человек бросит программирование нафиг или будет на нас молится ;-).

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

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

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

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

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

С уважением, Dmitry_Gr
0
daxter
Сообщений: n/a
19.06.2008, 02:42 #12
ну конечно для начала стоит подключить:
#include <windows.h>
а потом уже в зависимости от используемых функций
KillerBean
0 / 0 / 2
Регистрация: 18.05.2008
Сообщений: 45
19.06.2008, 03:20 #13
2 Dmitry_Gr:
Путь к файлу можно указывать как относительный, так и абсолютный.
(Я почти всегда прислалаю код, копированный из окна VC)

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

С уважением, KillerBean
0
19.06.2008, 03:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2008, 03:20
Привет! Вот еще темы с ответами:

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

Переписать содержимое текстового файла в новый файл - C++
дан текстовый файл f, переписать содержимое в новый файл g.

Используя стек, напечатать содержимое текстового файла - C++
Используя стек, напечатать содержимое текстового файла, выписывая символы каждой его строки в обратном порядке. Ребята, прошу помочь с...

Вывести содержимое текстового файла с пустыми строками - C++
Задан текстовый файл с пустыми строками. Вывести содержимое файла с пустыми строками


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

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

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