|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Открытие файлов на запись |
|
|
C/C++ - [решено] Открытие файлов на запись
|
Старожил Сообщения: 284 |
Профиль | Отправить PM | Цитировать Подскажите код, с помощью которого можно открыть файлы на запись или установить защиту на него, Но при этом что бы я мог считать с него данные, но нем мог их записать и удалить сам файл. За ранее спасибо
|
|
Отправлено: 17:26, 23-05-2012 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:37, 23-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Работает!
НО на чтение (не возможно перенести,удалить,переименовать) но можно записать в него!!! Подскажи, как сделать так что бы было только чтение на файле, но записать нельзя было бы в него. Будет проблема еще с записью потому что на файле стоит Read Only, надо снять его, после открыть на запись и снова установить чтение Помогите, я только начинаю поэтому не которые аспекты Трудно найти Спасибо |
------- Последний раз редактировалось O L E G, 30-05-2012 в 16:53. Отправлено: 15:47, 30-05-2012 | #3 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Пробовал
----- #include <iostream> #include <fstream> #include <cstdlib> #include <clocale> using std::cout; using std::endl; using namespace std; int main() { setlocale(LC_CTYPE,"Russian"); ifstream fin; fin.open("C://1.txt", ifstream::in); cout << "Защита установлена C://boot.ini" << endl; system("pause"); return 0; } |
------- Последний раз редактировалось O L E G, 30-05-2012 в 17:21. Отправлено: 17:05, 30-05-2012 | #4 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать вот простой пример
на время работы программы снимается атрибут readonly, в файл записать нельзя |
|
Отправлено: 03:37, 31-05-2012 | #5 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать ferget, проверил скрипт, работает до этого действия
#include <iostream> #include <fstream> using namespace std; int main() { system ("attrib -r input.txt"); fstream fin; fin.open("input.txt", fstream::in|fstream::out); А если так попробовать #include <iostream> #include <fstream> #include <cstdlib> #include <clocale> using std::cout; using std::endl; using namespace std; int main() { setlocale(LC_CTYPE,"Russian"); system ("attrib -r input.txt"); fstream fin; fin.open("input.txt", fstream::in|fstream::out); system ("attrib +r input.txt"); cout << "Защита установлена input.txt" << endl; system("pause"); return 0; } |
------- Отправлено: 09:46, 31-05-2012 | #6 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Цитата O L E G:
Цитата O L E G:
|
||
Отправлено: 09:57, 31-05-2012 | #7 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать ferget, перепроверил, не работает (
Даже не пойму в чем проблема. Интересно даже самому |
------- Последний раз редактировалось O L E G, 31-05-2012 в 17:43. Отправлено: 14:45, 31-05-2012 | #8 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать так попробуйте
#include <iostream> #include <fstream> #include <windows.h> #include <stdio.h> using namespace std; int main() { HANDLE hAppend; DWORD dwBytesRead=10, dwBytesWritten=10, dwPos=0; hAppend = CreateFile(TEXT("inp.txt"), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hAppend == INVALID_HANDLE_VALUE) { printf("Could not open inp.txt."); return 0; } LockFile(hAppend, dwPos, 0, dwBytesRead, 0); int k=0; while(k!=1) { cin>>k; } UnlockFile(hAppend, dwPos, 0, dwBytesRead, 0); return 0; } |
Отправлено: 03:09, 01-06-2012 | #9 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Спасибо, в этот раз помогло все. Если не ошибаюсь это функия winapi и она более функциональна чем прошлый код
Интересно, а приемлема такая же блокировка в ключам реестра? Чуть подредактил твой код,убрал от туда функцию работает как надо, файл читаемый но записать и изменить нельзя, Спасибо за помощь еще раз |
------- Последний раз редактировалось O L E G, 01-06-2012 в 09:33. Отправлено: 08:11, 01-06-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - открытие файлов office 2007 | tyrin | Microsoft Office (Word, Excel, Outlook и т.д.) | 5 | 22-11-2011 18:39 | |
Разное - Необычное открытие файлов | Chijik | Программирование и базы данных | 29 | 09-02-2011 06:53 | |
Долгое открытие файлов по сети | Altaranenco | Microsoft Windows NT/2000/2003 | 5 | 18-10-2006 16:25 | |
открытие файлов *.aspx | bezumes | Хочу все знать | 1 | 07-03-2006 19:19 | |
Открытие заархивированных файлов | marchl | Хочу все знать | 11 | 13-09-2003 21:43 |
|