Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2009, 17:12   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Работа с файлами.

В ближайшем будущем приступлю к разработке одного скользкого места, пока хотелось бы узнать тонкости работы с файлами.
Немного описания задачи: На каждый объект формироваться Рабочия таблица, куда вносятся данные по объекту (например: адрес, пользователя и т.п.), здесь же формируются ведомости, таблицы и т.п. по объекту. То есть вся работа (все действия) по объекту ведется в одном файле.
Хочу вести базу данных объектов, где будут храниться ключевые данные. И в момент ввода данных по объектам давать пользователю возможность заполнять данные беря информацию из базы. А так же проверять не проводились ли раннее работы по данному объекту, и т.п. Получаем классические задачи: заполнение/хранение/предоставление.
Начнем с хранения. Пока планирую хранить информацию в текстом виде, построчно. От сюда вытекает все остальное.
Меня волнуют вопросы связанные с одновременной работой по сети нескольких операторов. Что будет если:
1. в момент обращения к файлу для чтения, файл уже открыт для чтения.
2. в момент обращения к файлу для чтения, файл уже открыт для записи.
3. в момент обращения к файлу для записи, файл уже открыт для чтения.
4. в момент обращения к файлу для записи, файл уже открыт для записи.
5. можно ли в случае не возможности работы с файлом (его блокировкой) заставить процедуру ждать пока файл не освободиться, после чего начать работу с ним.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 23.05.2009, 21:15   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Пока планирую хранить информацию в текстом виде, построчно. От сюда вытекает все остальное
Вот если Вы решите использовать для хранения БД (к примеру, тот же Access), всё остальное перестанет "вытекать"...
Да и работать с БД будет намного удобнее, нежели с текстовым файлом, и никаких проблем с общим доступом.
EducatedFool вне форума Ответить с цитированием
Старый 23.05.2009, 23:09   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вот если Вы решите использовать для хранения БД (к примеру, тот же Access), всё остальное перестанет "вытекать"...
Да и работать с БД будет намного удобнее, нежели с текстовым файлом,
Смею не согласиться. Как минимум Access стоит денег, для нашей страны это пока еще не столь актуально, но все же. Во вторых жрет ресурсы, которые также стоят денег. В третьих это дополнительный громозкий элемент в системе, что привнесет только дополнительную не стабильность в работе. В четвертых это дополнительно привяжет к винде, а я стараюсь этим д..... пользоваться как можно реже. И т.п и т.д.
То есть использование текстовых файлов это: дешево, эффективно, самая высокая стабильность в работе, обработчик можно написать на любом языке программирования, в любой ОС, на любой компьютерной платформе (хоть на телефоне или на ZX Spectrume), формат ни когда не устареет, мне плевать на метод и способ организации сети, минимальные сроки и трудозатраты приведение системы в рабочее положение, и прочее и прочее.
Не вижу ни одной причины почему я должен выбирать иной способ.
Цитата:
Сообщение от EducatedFool Посмотреть сообщение
и никаких проблем с общим доступом.
Опять же не соглашусь... Пропадут мелкие внешние проблемы (которые и так решаются на раз, два, три), за то появятся целые горы, иных совершено левых проблем, которые в других обстоятельствах ни когда возникнуть не могут. Тем более что задача на мой взгляд элементарна, я её уже столько раз решал в иных условиях, что городить целый огород из-за такой мелочи ей богу не стоит.
С уважением, Алексей.

Последний раз редактировалось tae1980; 23.05.2009 в 23:13.
tae1980 вне форума Ответить с цитированием
Старый 23.05.2009, 23:50   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
В четвертых это дополнительно привяжет к винде, а я стараюсь этим д..... пользоваться как можно реже
Я в шоке... и Вы говорите это, разрабатывая макросы под Excel?
Цитата:
Как минимум Access стоит денег
Можно использовать любую другую СУБД (их много бесплатных).
Access я привёл лишь для примера.

Цитата:
Тем более что задача на мой взгляд элементарна, я её уже столько раз решал в иных условиях, что городить целый огород из-за такой мелочи ей богу не стоит.
Огород получится как раз в случае использования текстовых файлов, и написания множества процедур для работы с ними.

Я сам использую в одном из своих VBA-проектов базу данных, выполненную в виде ini-файла. Так я хоть использую WinAPI для чтения/записи в файл (что решает часть проблем с общим доступом к файлу).

Цитата:
обработчик можно написать на любом языке программирования, в любой ОС, на любой компьютерной платформе
А что, работа с базами данных осуществляется только под Windows?


Впрочем, Вам виднее. Если Вы так любите текстовые файлы, и готовы потратить кучу времени на написание процедур для работы с этими файлами, вряд ли я смогу Вас переубедить.
Удачи.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами basss Помощь студентам 2 22.12.2008 01:07
Работа с файлами. tresh Паскаль, Turbo Pascal, PascalABC.NET 3 05.10.2008 23:32
Работа с файлами DM_bite Помощь студентам 4 20.09.2008 16:52
Работа с файлами Dim@ Помощь студентам 1 26.12.2007 22:43