Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 593

Считать данные из .txt файла

24.09.2019, 11:52. Показов 2376. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Мне нужно считать данные из .txt файла и вывести их в RichEdit, но не удаётся создать файл для чтения.Использую функции CreateFile
Вот код:
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
 TCHAR buff[1000] = { 0xff, 0xfe };
 
                           DWORD lpNumberOfBytesRead;//Кол-во прочитаных байтов, если 0 то уже конец файла
                           hFile1 = CreateFile(  //функция создания ANSI!!!последния буква А
                               _T("Print.txt"), //это имя файла \\условно считаеться как \ но писать 2 иначе vs подумает что служ. команда
                               GENERIC_READ,  //в режим чтения GENERIC_WRITE то в запись 
                               0, NULL,
                               OPEN_EXISTING, //говорим что открываем файл УЖЕ СУЩЕСТВУЮЩИЙ КАК C:\MYFILES.TXT
                               FILE_ATTRIBUTE_NORMAL, //Это обычный файл с атриьутом не архивный и т.п.
                               NULL); //это точно не помню с защитой 
                           if (hFile1 == INVALID_HANDLE_VALUE)   //если ошибка то выходим INVALID_HANDLE_VALUE - некоторая переменная с некоторым значением типа #defain INVALID_HANDLE_VALUE Х..З
                           {
                               MessageBox(NULL, TEXT("Ошибка КЛИЕНТА! - неудалось открыть файл"), TEXT("Warning"), MB_OK);
                               // CloseHandle(hFile);
                               return 0;
                           }
                           do //тут обьявляем цикл с пост условием потомучто мы не знаем какой длины файл и будем читать до конца, когда lpNumberOfBytesRead будет равна 0 тогда файл прочитан
                           {
                               ReadFile( //функциячтения данных, параметры: дискрептор, массив куда читать, сколько прочитать байт, сколько прочитано, НЕ ПОМНЮ
                                   hFile1,
                                   buff, sizeof(buff), &lpNumberOfBytesRead, NULL);
                               if (lpNumberOfBytesRead == 0)  //Если ничего не рпочитано выходим
                                   break; //выход из цикла
 
                           } while (lpNumberOfBytesRead != 0);
                           CloseHandle(hFile1); //закрыть дискрептор в данном случае для файла.
 
 
                           SetWindowText(hRichEdit, buff);
Ошибка выподает в этом участке кода

C++
1
2
3
4
5
6
  if (hFile1 == INVALID_HANDLE_VALUE)   //если ошибка то выходим INVALID_HANDLE_VALUE - некоторая переменная с некоторым значением типа #defain INVALID_HANDLE_VALUE Х..З
                           {
                               MessageBox(NULL, TEXT("Ошибка КЛИЕНТА! - неудалось открыть файл"), TEXT("Warning"), MB_OK);
                               // CloseHandle(hFile);
                               return 0;
                           }
Не удаётся открыть файл для чтения
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.09.2019, 11:52
Ответы с готовыми решениями:

Считать данные из файла в конструкторе С++
Здравствуйте программисы, прошу помощь. Имееться код программы. Хочу сделать инициализацию данных из файла, в файле имена и...

WinApi Загрузить данные из .txt файла
Всем привет!!! Мне нужно написать программу которая могла бы загрузить данные из .txt файла,может у кого есть ссылки на примеры как это...

Файл: Считать данные из текстового файла и записать их в другой файл, заданный пользователем...
Доброго времени суток. Выполняя задание по программированию столкнулся с проблемой. Необходимо считать данный из текстового...

3
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
24.09.2019, 13:45
Цитата Сообщение от oleg rus Посмотреть сообщение
не удаётся создать файл для чтения
Так создать или для чтения? Это разные операции. Если создать - получите пустой файл, читать что-то оттуда не выйдет. А если для чтения, то файл должен создать кто-то другой, а ваша программа его откроет.
Цитата Сообщение от oleg rus Посмотреть сообщение
Использую функции CreateFile
Это обязательное требование или все-таки можно обойтись стандартными функциями?
Цитата Сообщение от oleg rus Посмотреть сообщение
неудалось

Цитата Сообщение от oleg rus Посмотреть сообщение
C
1
2
3
_T("Print.txt"), //это имя файла \\условно считаеться как \ но писать 2 иначе vs подумает что служ. команда
...
//говорим что открываем файл УЖЕ СУЩЕСТВУЮЩИЙ КАК C:\MYFILES.TXT
А файл-то там точно есть? А то в коде указывается одно имя, а в комментариях - еще два. Попробуйте прописать полный путь.
0
6 / 6 / 0
Регистрация: 13.05.2012
Сообщений: 593
24.09.2019, 16:15  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Сообщение от oleg rus
Использую функции CreateFile
Это обязательное требование или все-таки можно обойтись стандартными функциями?
Можно и стандартными функциями

Добавлено через 1 минуту
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так создать или для чтения?
Так если я правильно понимаю что бы прочитать его надо сначало создать для четения.

Добавлено через 1 минуту
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А файл-то там точно есть? А то в коде указывается одно имя, а в комментариях - еще два.
Да файл там есть,на комментарии не обращайте внимания это просто ещё не конечный результат не переписывать же мне постоянно комментарии
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,910
25.09.2019, 10:04
Цитата Сообщение от oleg rus Посмотреть сообщение
Можно и стандартными функциями
Ну так синтаксис fopen / fscanf / fclose явно проще, чем winapi.
Цитата Сообщение от oleg rus Посмотреть сообщение
Так если я правильно понимаю что бы прочитать его надо сначало создать для четения.
Если там файла нет, прочитать вы его не сможете, это логично. Но если вы создаете файл (не открываете существующий, а именно создаете новый), то откуда там данные возьмутся? Это все равно как ради чтения письма достать чистый лист.
Цитата Сообщение от oleg rus Посмотреть сообщение
Да файл там есть,на комментарии не обращайте внимания это просто ещё не конечный результат не переписывать же мне постоянно комментарии
Тогда лучше эти комментарии пока удалить, чтобы не сбивали с толку.
C
1
2
3
4
5
6
7
8
9
10
11
12
FILE *pf = fopen("Print.txt", "rb"); //поскольку пользуетесь битовым чтением, флаг "rb" - read bytes а не "rt" - read text
if( pf == NULL ){
  MessageBox(NULL, TEXT("Ошибка КЛИЕНТА! - не удалось открыть файл"), TEXT("Warning"), MB_OK);
  return 0;
}
size_t res;
do{
  res = fread( buff, 1, sizeof(buff), pf );
}while( res < sizeof(buf) );
fclose( pf );
 
SetWindowText(hRichEdit, buff);
Что-то в этом роде. Проверить, само собой, не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2019, 10:04
Помогаю со студенческими работами здесь

Требуется считать txt файл в бинарной форме
Вот для обычного считывания, как переделать для считывания файла в бинарной форме? char buff = {}; DWORD NumOfReadByte;//Кол-во...

Считать данные из текстового файла
Здравствуйте форумчане у меня есть разделенная БД, сотрудники отдела АДМ(назовем так) пополняют базу, у остальных сотрудников есть...

Рандомный выбор из файла: считать данные из txt
Есть такое задание: Задан файл в котором записаны Ф.И.О. Требуется рандомно выбрать из этого файла 1/2/3(по запросу пользователя)...

Как из файла txt считать данные в массив?
Добрый день. С с++ у меня очень плохо, но срочно нужно сделать одну вещь. Есть файл file.txt, в нем располагается массив данных, к...

Как Считать данные из txt файла с условием?
Добрый день! Помогите разобраться в каком направлении двигаться. Необходимо прочитать и вывести на экран часть содержимого текстового...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru