Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запись в файл на си

11K
28 ноября 2008 года
mitrof4nov
68 / / 10.09.2007
Доброго времени суток. Помогите пожалуйста, будьте добры решить проблему. Есть программа на Си считывающую в буферный массив все данные из файла произвольного размера (буферный массив распределяется динамически).
Код:
#include "stdafx.h" //подключение библиотек
#include "windows.h"
#include "fstream.h"
int main()    // начало программы
{  
    char *buffer;  // описываем переменные
    HANDLE hFile;
    DWORD dwFileSize,nBytesRead;
    DWORD kk;
    char fname[100];
    cout<<"Zapis v bufer"<<endl; //вывод в потоке
    cout<<" "<<endl;  
    cout<<"Enter file to read from"<<endl;
    cin>>fname; //ввод в потоке
    hFile=CreateFile(fname,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    kk=GetLastError();
    if (kk!=0)
    {
    cout << " "<<endl;
    cout << "There is no such file."<<endl;
    }
    else
    {
        cout << " "<<endl;
        cout << "Content of the file:"<<endl;
        dwFileSize=GetFileSize(hFile,NULL); //получение размера файла
        buffer=new char[dwFileSize];  //задание переменной значения размера
        ReadFile(hFile, buffer, dwFileSize,  &nBytesRead,NULL) ;  //чтение файла
    }
    cout<<buffer<<endl;
    return 0; // обнуление
}

Будьте добры, как в ней реализовать сохранение считанного в определенный файл по запросу пользователя. (т.е. необходимо выведенную информацию из файла сохранить по указанному пути в указанный фал). Я был бы Вам очень признателен за помощь в данном вопросе.
14
28 ноября 2008 года
Phodopus
3.3K / / 19.06.2008
1. Хендл файла не закрывается
2. Почти так же, только вместо Read - Write. Какие сложности?
11K
28 ноября 2008 года
mitrof4nov
68 / / 10.09.2007
делал, но столько ошибок.. не то, как мне кажется.
11K
29 ноября 2008 года
mitrof4nov
68 / / 10.09.2007
Код:
int m;
int iFileHandle;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
//m=StrToInt(Edit1->Text);


iFileHandle = FileOpen("file.text", fmOpenWrite);

FileWrite(iFileHandle, Edit1->Text.c_str(), Edit1->Text.Length());

FileClose(iFileHandle);


то что сделал. В файл не пишеся :(
4.4K
01 декабря 2008 года
chameleon
3 / / 01.07.2003
int __fastcall FileOpen(const AnsiString FileName, unsigned Mode);
Открывает существующий файл, т.е. если файл нет она вернет значение -1.
Используй
int __fastcall FileCreate(const AnsiString FileName);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог