|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.04.2012, 19:19 | #1 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
Вопрос по работе с файлами (Delphi)
Я написал чат для сетевого диска. Клиент лежит на этом сетевом диске, все "юзеры" его запускают, файл чата(txt) находится в той же папке, что и клиент. Файл чата читается и дополняется "юзерами" по-обычному (assignfile,readln,writeln...).
1. Как сделать так, чтобы несколько компов одновременно могло читать и записывать в файл (или хотя бы читать), так, чтобы не выдавало ошибки? 2. Как сделать так, чтобы никто не мог со своих компов открыть текстовым редактором файл чата? А программой чтоб можно было? |
24.04.2012, 08:02 | #2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
Это не хороший чат. Лучше делайте клиент-серверный чат.
|
24.04.2012, 08:47 | #3 |
Пользователь
Регистрация: 23.04.2011
Сообщений: 42
|
Я конечно не спец, но может лучше использовать БД?
|
24.04.2012, 15:19 | #4 |
Пользователь
Регистрация: 23.10.2011
Сообщений: 16
|
Понимаю, чат плохой, но работает же))) Я не разбираюсь в сетях, и в работе с сетью в Delphi я тоже не разбираюсь. Ну, может быть кто-нибудь знает, как сделать неоткрываемый с компа файл на сетевом диске, но чтобы его можно было открыть в Delphi??? =)
|
24.04.2012, 23:50 | #5 |
Форумчанин
Регистрация: 21.05.2008
Сообщений: 495
|
НУ смотрите, делфи как и другая любая стреда разработки работает с файлами, какие у файла атрибуты есть такие делфи и будит исопльзовать, а ошибка увас выходит изза того что вы скорее всего пытаетесь сделать запись в уже открытй для редактирования фаил, могу посоветовать компаненты SocketServer, SocketClient
Там ничего сложного нет, делаете серверную часть которая будит принимать сообшения с клиентов и отправлять нужному получателю (чат с которым открыт), соотвествено фаил с логом чата будит отрыт только одним приложением для записи, другие не смогут его изменить. Да и забудте эти паскальные обрашения к файлу, в делфи куча других реализаций работы с фалами, можно с ини файлами TIniFile, можно просто с файлом TFile... И зачем у вас ехе проги-чата лежит в сети непонятно, это не совсем правильно... |
25.04.2012, 18:12 | #6 |
Пользователь
Регистрация: 17.08.2011
Сообщений: 35
|
Поддержу Dozent. Использование одного файла для записи сразу несколькими пользователями не очень хорошо. Посмотрите в инете есть много статей по реализации чата. Для простого чата, надо просто написать "пару" строк кода.
|
25.04.2012, 21:01 | #7 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Идея, конечно, ужас... но на первый раз для самых начинающих - сойдёт.
Насчёт одновременного доступа - никак. Это должно быть очевидно. Если две программы пишут в файл одновременно - чьи записи будут в файле? Первой или второй программы? А если обеих - то в каком порядке? И что если каждая программа пишет две записи? Значит ли это, что данные пойдут вперемешку? Поэтому логика должна быть проста - если не смог открыть, подожди чуть-чуть и попробуй снова.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi. Динамический массив при работе с нетипизированными файлами | Arrow_S | Помощь студентам | 10 | 06.04.2012 22:19 |
Вопрос по работе с файлами | Елжан | Помощь студентам | 0 | 01.12.2011 19:23 |
Вопросы по работе с файлами С++ | Alex456 | Общие вопросы C/C++ | 4 | 14.06.2011 22:27 |
Интересный вопрос по работе с файлами в C++ | FastDead | Общие вопросы C/C++ | 8 | 25.12.2009 23:13 |
delphi 9 или delphi 2005 вопрос о работе | Doget | Компоненты Delphi | 0 | 07.07.2008 08:50 |