Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файлы, запись, запрет, поиск 
:(
    Опции темы
int19h
Дата 11.9.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.9.2009

Репутация: нет
Всего: нет



Добрый день.
Тема про файлы, точнее - про их хранение.
Вообщем через web-скрипт, написанный разумеется на перле, сохраняю  файл с данными в какой либо директории.
Директория: скажем "base_nick".
Относительно хоста она выглядит к примеру так: "home\html\www\base_nick".
Относительно web: http://domen.ru/base_nick/
Сами файлы - текстовые, скажем : петя.txt

Теперь суть.
Запись в файл:
Код

$id = (123);
$login = (петя); # в моем случае утрировано, имя вводится через форму типа регистрации
open (NICK, ">>base_nick/$login.txt");
print NICK "id=$id login=$login";
close (NICK);


после чего в директории home\html\www\base_nick\ отлично ложится файлик петя.txt с записанными вовнутрь данными.

Чего хочу? Подскажите пример, чтоб если будет попытка снова записать такой же файл, то выскочила бы ошибка, что данное имя занято, и разумеется файл бы ни в коем случае не перезаписался... То есть что то вроде поиска, есть ли такой файл, и если есть - то запрет на перезапись и возврат обратно с комменатрием о занятости имени. Причем в директории может быть ну очень много файлов, скажем 100 000... 

Плиз...  smile   smile 

Это сообщение отредактировал(а) int19h - 11.9.2009, 20:47
PM MAIL   Вверх
sir_nuf_nuf
Дата 11.9.2009, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



В перл есть оператор -f который возвращает истину если файл с указанным именем существует.

Код

if (-f '/etc/passwd') {
  print "ok, nothing serious\n";
}
else {
  print "Aaaahh! It's time to panic!\n";
}


Соответсвенно там где вы делаете запись, просто проверяйте существует ли такой файл.
И если существует - то не пишите.

Это сообщение отредактировал(а) sir_nuf_nuf - 11.9.2009, 22:03


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
int19h
Дата 11.9.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.9.2009

Репутация: нет
Всего: нет



Хорошо...
Я сейчас попробую ваш пример.
Но вот в книге по perl есть пример проверки файла, там вот что:

-с = проверяет директорию
-е = проверяет наличие существование файла
-s = представляет инфу по размеру файла
-w = проверяет доступ на дозапись в файл

и пример дан

Код

if(-e $filename)
{
print "есть такой";
}
else
{
print "нет такого";
}


вообщем оба проверю варианта, спасибо за пример, понял, где копать...  smile 

Это сообщение отредактировал(а) int19h - 11.9.2009, 22:20
PM MAIL   Вверх
int19h
Дата 11.9.2009, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 5.9.2009

Репутация: нет
Всего: нет



Всё, разобрался с ключами, sir_nuf_nuf - спасибо большое, всё верно, понял зачем твой ключ и зачем другие ключи, всё работает отлично =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.