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

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

Восстановить пароль Регистрация
 
Rlmk
Сообщений: n/a
06.12.2012, 19:50     Блокировка текстовых файлов #1
программа которая создает файл и дает к нему определенные права вот толька файл не сохраняется подскажите в чем
проблема
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 19:50     Блокировка текстовых файлов
Посмотрите здесь:

С использованием текстовых файлов C++
C++ Конкатенация текстовых файлов
C++ C++ подключение текстовых файлов
Обработка текстовых файлов C++
Обработка текстовых файлов C++
Соединение 2 текстовых файлов C++
C++ Перекодировка текстовых файлов
C++ Конкатенация текстовых файлов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему

Метки
Блокировка, текстовых, файлов
Опции темы

Текущее время: 00:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru