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

Запись в файл по нажатию кнопки

04.05.2014, 00:27. Показов 2005. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не происходит запись в файл . Файл создаётся , но строка в нём так и не появляется:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
LPCVOID buf ="hello";
 
  switch (uMsg)
 {
 
case WM_COMMAND:
 
               if(LOWORD(wpar)==SELECT)
               {
                HANDLE file;
                file = CreateFile ((LPCSTR)"D:\\1.txt", GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
                
                
                WriteFile(file,&buf ,sizeof(buf) ,NULL , NULL);
                if(!WriteFile)MessageBox(hwnd,(LPSTR)"error",(LPCSTR)"",MB_OK);
               }
 
               
              
              break;
Что я не правильно делаю?

Добавлено через 9 минут
уже вроде записывается, только вместо строки - непонятные символы..((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2014, 00:27
Ответы с готовыми решениями:

Запись в текстовый файл по нажатию кнопки
Подскажите, как в MS Visual C++ для приложения Windows Forms сделать так, чтобы при нажатии кпонки,...

Запись содержимого TextBox в файл по нажатию кнопки
Помогите пожалуйста с записью содержимого в текст-боксах в текстовый файл, обшарил интернет ничего...

Запись данных в XML файл из TextBox по нажатию кнопки
Помогите пожалуйста. Как можно сделать запись строки в XML файл,в определенный тэг, из...

Не удаляется запись из базы по нажатию кнопки
$connection = mysql_connect('localhost', 'root', ''); $db = mysql_select_db("myadmin");...

6
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
04.05.2014, 00:59 2
У меня всё нормально вписалось )))
Просто слово hello через пробелы написаны.

Добавлено через 8 минут
А вообще я предпочитаю использовать библиотеку fstream
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
using namespace std;
 
case WM_COMMAND:
{
    if(LOWORD(wParam)==BUTTON){
 
        char str[10] = "hello";
        ofstream file("1.txt");
        if(file.fail()) MessageBox(NULL,L"ошибка",L"ошибка",MB_OK);
        file << str;
        file.close();
    }
    break;
}
1
Заблокирован
04.05.2014, 10:08  [ТС] 3
Спасибо, так получилось нормально записать )
А вот если записывать через ofstream не просто строку , а , например , содержание ListBox - такое возможно?
0
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
04.05.2014, 11:25 4
Конечно можно
0
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
04.05.2014, 11:52 5
C++
1
file = CreateFile ((LPCSTR)"D:\\1.txt", ...
Вот и ошибка. И не только здесь. Посмотрите, что такое LPCSTR.
Если проект настроен на использование юникода, - а по умолчанию
обычно так и есть, - то LPSTR и LPCSTR - это указатель на wchar_t-строку, а
не на char-строку.
0
51 / 50 / 14
Регистрация: 17.11.2012
Сообщений: 427
04.05.2014, 12:13 6
Убежденный
Вроде же LPWSTR и LPCWSTR - указатель на wchar_t ,
а LPSTR и LPCSTR - указатель на char.
Разве не ?
1
Ушел с форума
Эксперт С++
16473 / 7436 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
04.05.2014, 12:55 7
BeginerMan, точно ! Мой косяк, перепутал с LPTSTR.

Misha_cpp, еще парочка комментариев:

C++
1
WriteFile(file,&buf ,sizeof(buf) ,NULL , NULL);
Во-первых, не проверяется возвращаемое значение.
Значит, успешно или неуспешно завершилась функция записи в файл - неизвестно.

Во-вторых, buf - это указатель. Значит, sizeof (buf) всегда будет возвращать
значение, равное sizeof (void *), т.е. 4 байта (на x86).

В-третьих, четвертый параметр WriteFile должен быть указателем на DWORD-
переменную, куда функция запишет число записанных байт. А не NULL.
0
04.05.2014, 12:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2014, 12:55
Помогаю со студенческими работами здесь

Запись данных из формы в таблицу по нажатию кнопки
Здравствуйте, помогите пожалуйста сделать форму, в ней есть несколько полей и соответствующие им...

Запись строки в таблицу по нажатию кнопки в Access
Подскажите пожалуйста: есть форма со списком товаров. напротив каждой стоки есть кнопка, по нажатии...

Запись данных в БД посредством JTextField по нажатию кнопки
Сразу к делу. Есть БД в SQL все подключается, инсталлируется и даже удаляется. При добавлении...

Запись и удаление записи в ListBox по нажатию кнопки
Здравствуйте, необходимо удалить строку из listbox . При нажатии кнопки появляется запись в ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru