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

Блокировка текстовых файлов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ uniform_int_distribution или uniform_real_distribution ? http://www.cyberforum.ru/cpp-beginners/thread721891.html
Какая из двух функций fill_random_1 или fill_random_2 эффективней. Имеет ли смысл определять две подобных таких ф-ции или генерить рандомные числа только из uniform_real_distribution в одной ф-ции с...
C++ Поиск файла по маске в несколько потоков Здравствуйте, дали задание, но я не силён в этом, помогите решить пожалуйста. Нужно сделать поиск файла по маске в несколько потоков. 1. Поиск файлов по маске в каталоге. Количество потоков равно... http://www.cyberforum.ru/cpp-beginners/thread721890.html
C++ Найти количество первых целых положительных чисел, сумма которых не превышает S. Значение S вводить с клавиатуры
Найти количество первых целых положительных чисел, сумма которых не превышает S. Значение S вводить с клавиатуры. желательно попроще и со scanf и printf. Заранее очень благодарен! Добавлено...
Не могу открыть файл fstream C++
Добрый день. Не могу открыть файл с помощью fstream файл, файл лежит в корне проекта. Пользуюсь QT creator с gcc. #include <iostream> #include <fstream> #include <string> using namespace std; ...
C++ Деревья "и/или" http://www.cyberforum.ru/cpp-beginners/thread721880.html
Помогите пожалуйста разобраться с деревьями "и/или"? Чем они существенно отличаются от простых деревьев? Если есть возможность, приведите пример кода построения дерева "и/или" на С++.
C++ Помощь с оператором std:: Помогите пожалуйста, я только начинаю изучать C++ и встретился с оператором "std::" . Кто подскажет какой это оператор, и какого его действие?! подробнее

Показать сообщение отдельно
Rlmk
Сообщений: n/a

Блокировка текстовых файлов - C++

06.12.2012, 19:50. Просмотров 279. Ответов 0
Метки (Все метки)

программа которая создает файл и дает к нему определенные права вот толька файл не сохраняется подскажите в чем
проблема
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <Windows.h>
using std :: cout;
using std :: cin;
using std :: endl;
 
struct PersonalData
{
    char FullName [100];
    char Sex [7];
    int YearOfBirth;
    bool CriminalRecord;
    char SpecialFeatures [1000];
};
 
int main()
{
    PersonalData pd1;
    strcpy(pd1.FullName,"Name1 SurName1 FatherName1");
    strcpy(pd1.Sex, "Male");
    pd1.YearOfBirth=1990;
    pd1.CriminalRecord=1;
    strcpy(pd1.SpecialFeatures, "kdasdfghjk");
    PersonalData pd2;
    strcpy(pd2.FullName,"Name2 SurName2 FatherName2");
    strcpy(pd2.Sex, "Female");
    pd2.YearOfBirth=1991;
    pd2.CriminalRecord=0;
    strcpy(pd2.SpecialFeatures, "askdasdfghjk");
    HANDLE hFile,hFileMapping;
    DWORD dwTemp;
    PersonalData pdTemp;
 
    hFile=CreateFile(L"file.txt",GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,
                     CREATE_ALWAYS|OPEN_EXISTING,0,NULL);
    WriteFile(hFile,&pd1,sizeof(PersonalData),&dwTemp,NULL);
    WriteFile(hFile,&pd2,sizeof(PersonalData),&dwTemp,NULL);
    SetFilePointer(hFile,0,0,FILE_BEGIN);//установить указатель в начало файла
    int numberOfPD;
    bool readOnly;
 
    cout<<"input numberOfPD:"<<endl;
    cin>>numberOfPD;
    cout<<"input readOnly:"<<endl;
    cin>>readOnly;
 
    OVERLAPPED ol;
    ZeroMemory (&ol,sizeof(OVERLAPPED));
 
    SetFilePointer(hFile,numberOfPD*sizeof(PersonalData),0,FILE_BEGIN);
    ol.Offset=numberOfPD*sizeof(PersonalData);
 
    if (!readOnly)
    {
        LockFileEx(hFile,LOCKFILE_EXCLUSIVE_LOCK,0,sizeof(PersonalData),0,&ol);
        ReadFile(hFile,&pdTemp,sizeof(PersonalData),&dwTemp,NULL);
        cout<<pdTemp.FullName<<' '<<pdTemp.Sex<<' '<<pdTemp.YearOfBirth<<
            ' '<<pdTemp.CriminalRecord<<' '<<pdTemp.SpecialFeatures<<endl;
        strcat(pdTemp.FullName,"1235");
        cout<<pdTemp.FullName<<' '<<pdTemp.Sex<<' '<<pdTemp.YearOfBirth<<
            ' '<<pdTemp.CriminalRecord<<' '<<pdTemp.SpecialFeatures<<endl;
        UnlockFileEx(hFile,0,sizeof(PersonalData),0,&ol);
    }
 
    
    if (readOnly)
    {
        LockFileEx(hFile,LOCKFILE_FAIL_IMMEDIATELY,0,sizeof(PersonalData),0,&ol);
        ReadFile(hFile,&pdTemp,sizeof(PersonalData),&dwTemp,NULL);
        cout<<pdTemp.FullName<<' '<<pdTemp.Sex<<' '<<pdTemp.YearOfBirth<<
            ' '<<pdTemp.CriminalRecord<<' '<<pdTemp.SpecialFeatures<<endl;
        UnlockFileEx(hFile,0,sizeof(PersonalData),0,&ol);
    }
 
hFileMapping=CreateFileMapping(hFile, NULL, PAGE_READONLY,0,0,NULL);
    getch();
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru