|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.11.2011, 12:34 | #1 |
Пользователь
Регистрация: 02.09.2007
Сообщений: 51
|
Работа с файлами. Общий доступ
Мне нужно программно открыть текстовый документ, расположенный по заранее известному адресу - открыть для редактирования, ну или полностью заменить его. Насколько я понял из букварей Delphi, другая программа, которая открыла файл, может открыть его в режиме запрета доступа других программ к этому файлу. Значит, прежде чем открывать данный *.txt, нужно проверить, а есть ли у моей программы право его открывать для редактирования? Подскажите пожалуйста, как проверить этот флаг.
Далее. Допустим право редактировать данный файл у моей программы есть. Она его открыла, изменила его и сохранила. НО! Другая программа, открывшая этот файл раньше моей, замешкалась (моя сработала быстрее) и закончила вносить изменения позже, чем моя. В результате она сохранит свои изменения в этом файле, фактически заменив его. Это значит, что инфа, которую внесла моя программа, попросту исчезнет. Отсюда возникает вопрос, как наладить работу моей программы так, чтоб она открывала тот *.txt тогда и только тогда, когда он не открыт ни какой другой программой? И при этом открывала его в режиме, запрещающем другим программам открывать его? Какие команды Delphi для этого используются? И вообще,возможно ли осуществить в коде мною задуманное? Последний раз редактировалось drknn; 28.11.2011 в 00:03. |
27.11.2011, 13:54 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Думаю подойдёт так
Код:
|
27.11.2011, 15:34 | #3 |
Пользователь
Регистрация: 02.09.2007
Сообщений: 51
|
Ндааа, помнится Флёнов писал что-то такое же в своей "Библии Делфи". Спасибо, буду посмотреть. Жаль в инете не вижу полного описания TFileStream - всё какие-то кусочки, да копирование с чужих рессурсов
|
27.11.2011, 15:44 | #4 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
А вам интернет и не нужен вообще. Откройте справку delphi и там описание чего угодно, во всей красе. Иногда даже с примерами.
Далее делайте полную копию исходного документа во временную папку ну и работайте с ним. Приоритет будет за вами. notepad++ так и делает. Исходный док-нт бросает во временную папку и следит за исходным. Если исходный изменился, предлагает юзеру перезагрузить документ, или продолжить изменять тот что во временной папке лежит. ТС вы заблуждаетесь! Если вы открыти файл через memo или RichEdit то другая программа сможет только открыть файл НО не изменить его. При условии что спользуется класс Tstrings(а в этих комонентах он точно есть), видим его LoadFromFile: Код:
Цитата:
Последний раз редактировалось Человек_Борща; 27.11.2011 в 15:55. |
|
27.11.2011, 15:47 | #5 |
Пользователь
Регистрация: 02.09.2007
Сообщений: 51
|
|
27.11.2011, 16:20 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
drknn, ну тогда вас ждут пень-колода и гвозди на каждом шагу.
|
27.11.2011, 18:33 | #7 | ||
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Цитата:
Цитата:
Вот Вам ру-источник для начала - http://stfw.ru/page.php?id=4234 Из самого стрима много свойств и методов знать не обязательно, достаточно нескольких, а по остальным - заходите в справку и для каждого свойства/метода в гугле ищете русский источник. Ещё совет - научитесь поконкретней вопросы ставить - проще помочь Вам будет. Последний раз редактировалось phomm; 27.11.2011 в 18:38. |
||
27.11.2011, 20:11 | #8 |
Пользователь
Регистрация: 02.09.2007
Сообщений: 51
|
Открою Вам правду. Приезжала тут как-то в одну из наших школ девочка из Америки - Штат Айова. Приезжала преподавать детям английский язык - её школа пригласила. По-русски - ни бум-бум. Я в школе "учил" английский. С девушкой пересёкся у друга дома - друг преподаёт классическую гитару и его ученик и пригласил девушку в гости к нему. Контакт с этой девушкой мне показал, что моих знаний английского + применения языка жестов вполне достаточно, чтоб понять друг-друга.
Но технический английский - это совсем не то, что разговорный. Мне как-то попался в руки словаь технического английского. Я открыл статью "mother" и был весьма удивлён, что это слово переводилось как "станина станка". Ни о какой маме и близко небыло упоминания. Поэтому когда заходит речь о чтении программной справки на английском, я честно говорю, что не владею этим языком. MQL4 - это си-образный язык, предназначенный для программирования торговых роботов. К этому посту я приложил документ всего в 1300 строк программного кода. Распакуйте архив и откройте документ текстовым редактором - получите представление об этом языке и если хотя бы поверхностно знаете С, то многое покажется знакомым. |
27.11.2011, 20:18 | #9 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
27.11.2011, 20:29 | #10 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
Во-первых, называем нормально тему
Во-вторых, топикстартёр, ты пишешь много лишнего, первый твой пост в этой теме я смог переварить только с третьего захода. Слишком много букаф на такой простой вопрос В-третьих, вопрос - боян, легко гуглится, все вопросы снимаются чтением кошерных книжек и статей по Delphi По теме: юзаем гугль, четвёртая ссылка расскажет почти всё что надо по классу TFileStream Последний раз редактировалось rpy3uH; 27.11.2011 в 20:39. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Общий доступ к внешнему HD | nick42 | Общие вопросы C/C++ | 0 | 14.10.2011 16:51 |
Работа с файлами. Произвольный доступ. с++ | ahab | Помощь студентам | 1 | 17.03.2010 00:51 |
Работа с книгой имеющей общий доступ в Excel(2003,2007) | Fezdipekla | Microsoft Office Excel | 1 | 12.03.2010 10:35 |
Общий доступ и работа с защищенным листом. | zakv | Microsoft Office Excel | 0 | 22.10.2009 09:18 |
Общий доступ в интернет | HAMMAN | Свободное общение | 1 | 06.08.2007 20:41 |