Нажмите CTRL-D чтобы добавить нас в закладки
HackZone.RU - функция WriteFile, запись информации в файл.
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Программирование / C/C++/VC++ RSS подписка на сообщения с форума Subscribe


Новая тема Наиболее обсуждаемые темы Наиболее посещаемые темы
Поиск 
Период
Перейти

Страницы сообщения: [1] [2] Просмотров - 7983
функция WriteFile, запись информации в файл.
Добавить этот топик в закладки »
RSS-лента ответов »Subscribe
HACK_ER




Platinum Member
# | Сообщение добавлено 28.08.2010 19:09:01
Всем ку)
написал исходник:
C++
HANDLE myFile;
myFile = CreateFile("G:\\Users\\pr1kal1st\\tfilex2.txt", GENERIC_READ + GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
unsigned long rEal;
 
WriteFile(myFile,"gfd", 3,&rEal , NULL);
Работает нормально, но только я не пойму одного. В 3-ем параметре обязательно нужно записать, сколько байтов нужно записать файл, ну а откуда я узнаю сколько байт мне придётся записать, если у меня будет, допустим, текстовый редактор?. Как можно более автоматизировать процесс?
Сказать спасибо Ответить Цитировать

_ruzmaz_


Gold Member
# | Сообщение добавлено 28.08.2010 20:31:58
размер текста в текстовом поле на момент обработки нажатия на кнопку "Save" тебе же будет известен
Сказать спасибо Ответить Цитировать

HACK_ER




Platinum Member
# | Сообщение добавлено 28.08.2010 20:58:20
И как узнать этот размер?
Сказать спасибо Ответить Цитировать

_ruzmaz_


Gold Member
# | Сообщение добавлено 28.08.2010 21:02:51
если пишешь на api, то через посылку сообщения WM_GETTEXTLENGTH (через SendMessage) окну (полю с текстом)
Сказать спасибо Ответить Цитировать

tvb_19


Advanced Member
# | Сообщение добавлено 28.08.2010 22:05:24
В Delphi и C# есть функция SizeOf(), которая возвращает число байтов, занятых переменной, переданной функции в качестве параметра. Кажется, такая есть и в C++.
Если пишете на билдере, длину текста можно узнать, например:
C++
Length(Memo1->Lines->Text);
Сказать спасибо Ответить Цитировать

HACK_ER




Platinum Member
# | Сообщение добавлено 28.08.2010 22:36:55
Пишет след ошибки (((
Text
Checking project dependencies...
Compiling Project2.cbproj (Debug configuration)
[BCC32 Error] Unit2.cpp(25): E2062 Invalid indirection
  Full parser context
    Unit2.cpp(20): parsing: void _fastcall TForm2::Button1Click(TObject *)
[BCC32 Error] Unit2.cpp(25): E2034 Cannot convert 'UnicodeString' to 'const void *'
  Full parser context
    Unit2.cpp(20): parsing: void _fastcall TForm2::Button1Click(TObject *)
[BCC32 Error] Unit2.cpp(25): E2342 Type mismatch in parameter 'lpBuffer' (wanted 'const void *', got 'UnicodeString')
  Full parser context
    Unit2.cpp(20): parsing: void _fastcall TForm2::Button1Click(TObject *)
Failed
Elapsed time: 00:00:00.4
Параметры функции поменял так:
C++
WriteFile(myFile,Edit1->Text,Edit1->Text.Length() , *rEal , NULL);
Сказать спасибо Ответить Цитировать

_ruzmaz_


Gold Member
# | Сообщение добавлено 28.08.2010 23:13:34
Отредактировано 28.08.2010 23:14:12 by _ruzmaz_
можно так, но записано будет в utf-16
C++

WriteFile(myFile, Edit1->Text.c_bstr, Edit1->Text.Length()*2 , &rEal , NULL);
 
Сказать спасибо Ответить Цитировать

HACK_ER




Platinum Member
# | Сообщение добавлено 29.08.2010 00:25:13
Отредактировано 29.08.2010 00:28:35 by HACK_ER
А в Unicode как записать всё-таки? Вернее так, чтобы на русском тоже норм читалось.кста, переменной c_bstr вообще не оказалось в списке, но я заюзал c_str. (компилятор - C++Builder 2010)
Сказать спасибо Ответить Цитировать

_ruzmaz_


Gold Member
# | Сообщение добавлено 29.08.2010 00:55:48
Отредактировано 29.08.2010 01:00:52 by _ruzmaz_
HACK_ER

А в Unicode как записать всё-таки? Вернее так, чтобы на русском тоже норм читалось
в unicode и будет записано, должно читаться     ... хотя у UnicodeString есть метод CodePage(), возможно есть нюансы в плане кодировки, точно не знаю 2010 билдер не пробовал еще
HACK_ER

переменной c_bstr вообще не оказалось в списке, но я заюзал c_str
да, хоть какое-то описание класса я чуть позже нашел))  метод c_str() вернет указатель на w_char, то есть юникод строку;   метод c_bstr() есть в WideString, я предположил что там есть такой же)
Сказать спасибо Ответить Цитировать

HACK_ER




Platinum Member
# | Сообщение добавлено 29.08.2010 03:11:53
Отредактировано 29.08.2010 03:12:45 by HACK_ER
Ладно, допустим с этим разобрались. Теперь я хочу сделать следующее. Чтобы программа получала, к примеру, адрес windows-каталога, и записывала в файл адрес данного каталога. Я решил сделать это так для начала:
C++
char winDir[256];
GetWindowsDirectory(winDir, 256);
for (int i = 0; ; i++) {
 WriteFile(myFile, winDir[i], 1 , &rEal , NULL);
 if (winDir[i] == '\0') {
        break;
 }
Но данный код, к сожалению, не компилируется...
Сказать спасибо Ответить Цитировать

Страницы сообщения: [1] [2]
Только зарегистрированные пользователи могут оставлять сообщения в форуме

Зарегистрироваться *** Авторизоваться

 Последние новости и статьи  Последние сообщения с форумов
  • WhatsApp уверяет пользователей, что Facebook не имеет доступа к и...
  • Однострочная команда в Windows 10 может повредить жесткий диск с ...
  • Кардерский форум Joker’s Stash объявил о закрытии
  • Релиз ядра Linux 5.9
  • Российские хакеры вооружились уязвимостью Zerologon
  • Тысячи приватных звонков американских заключенных оказались в отк...
  • Шифровальщик атаковал немецкую компанию Software AG
  • Злоумышленники используют службу Windows Error Reporting для бесф...
  • Microsoft предупредила о вымогателях, которые выдают себя за МВД ...
  • Инфостилер Valak ворует информацию из почтовых систем Microsoft E...

    Все новости... Все статьи... Прислать новость RSS
  • Взлом и безопасность / Программы » Услуги Хакера @ Заказать взлом @ Нужен хакер@Alex89618506139
  • Взлом и безопасность / ICQ,AIM,YAHOO,QIP » Услуги Хакера @ Заказать взлом @ Нужен хакер@Alex89618506139
  • Взлом и безопасность / Разное » Re: Помощь в скачивании платного файла
  • Взлом и безопасность / Разное » Помощь в скачивании платного файла
  • Разное / Куплю, приму в дар » куплю | ваш аккаунта | получение нового | описание внутри
  • Разное / Предложения работы » Специалиста
  • Downloads / Другое » Re: Нужна база емайл адресов юр. лиц
  • Downloads / Другое » Нужна база емайл адресов юр. лиц
  • Разное / Предложения работы » Нужен взлом mail и gmail почты
  • Взлом и безопасность / Разное » Re: Нужна помощь в скачивании файла

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 1996-2020. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    contador de visitas счетчик посещений

    #{title}

    #{text}

    x

    #{title}

    #{text}