Forum Webscript.Ru
Программирование => Perl => Тема начата: Saffi от 19 Сентября 2003, 14:12:14
-
Помогите выставить автоматическую нумерацию строк в текстовом файле, при записи в него информации из формы:
# Записываем заявку в файл
($day,$month,$yearr) = (localtime)[3,4,5];
$yearr=$yearr+1900;
$month=$month+1;
open(BUDKA, ">>bydka.txt");
print BUDKA "~$town~$vozr~$tel~$name~$day.$month.$yearr~ ~$phone~$email~$proizv1~$model~$year~$link1~$link2~$subject~$ref~$ent~$ENV{HTTP_REFERER}~$cost~$i1~$i2~$i3~$i4~$i5~$age[1]~$stage[1]~$min_age~$min_stage\\n";
close(BUDKA);
или подскажите, пожалуйста, как это сделать...
На всякий случай - смысл в том, что при заполнении заявки на сайте, она бы под своим уникальным номером заносилась в текстовой файл (для отслеживания)...
Заранее спасибо.
-
создай еще один файл, где храни номер последней записи. С каждой новой записью увеличивай на 1 и т.д...
ps: не забудь про блокировки, и подумай про SQL
-
а без создания еще одного файла можно?
-
Saffi:
а без создания еще одного файла можно?
конечно! читаешь последнюю строку файла и узнаешь последний номер.
-
Строка в массив.
Сколько элементов в массиве - столько и строк.
-
:( в том-то все и дело, что именно это я и хотела спросить: как это сделать практически....
-
это я для ondr присала...
-
Saffi
($day,$month,$yearr) = (localtime)[3,4,5];
$yearr=$yearr+1900;
$month=$month+1;
open (FILE, "bydka.txt");
@file=;
$num=@file;
open(BUDKA, ">>bydka.txt");
print BUDKA "$num~$town~$vozr~$tel~$name~$day.$month.$yearr~ ~$phone~$email~$proizv1~$model~$year~$link1~$link2
~$subject~$ref~$ent~$ENV{HTTP_REFERER}~$cost~$i1~$
i2~$i3~$i4~$i5~$age[1]~$stage[1]~$min_age~$min_sta
ge\\n";
close(BUDKA);
-
Yaroslav
Спасибо - работает, но есть нюанс... файл *.txt постоянно чистится, чтобы не слишком много весить и если делать таким образом, то нумерация будет постоянно прыгать, а она должна идти нарастающим итогом...
Новая строка записывается в конец файла.
Помогите плз.
-
Saffi
Для этого я использовал функцию localtime(), и имя файла давал:
гггг-мм-дд.txt
Т.е. при изменении дня на сервере, имя твоего файла тоже будет меняться, только вот желательно своевременно переписывать себе эти файлы с сервера...
-
Saffi:
Спасибо - работает, но есть нюанс... файл *.txt постоянно чистится, чтобы не слишком много весить и если делать таким образом, то нумерация будет постоянно прыгать, а она должна идти нарастающим итогом...
есть 2 варианта:
1. читать последнюю строчку из файла, разбить ее и к нумерации добавить 1, что в дальнейшем и вставлять в новую строчку
2. создать новый файл и хранить там текущюю нумерацию.
Соответственно открыть файл с нумерацией, увеличить значение и его использовать для файла данных
правка: вот тормоз, про это уже писали, ну да ладно