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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <write format> неправильный порядок в файле, <write format> неправильный порядок в ф 
:(
    Опции темы
trent
Дата 26.1.2010, 05:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет, всем !
я токо начал делать на Перле один репорт и не могу понять почему мои <writes format> в репорте идут в каком-то непонятном порядке, не так как программа их пишет. наверное есть какой-то buffer или еще чего я не понимаю,  + я делаю мульти filehandles к одному и тому же файлу.
Помогите советом кто-может, как сделать мой скрипт чтобы он писал в spool.txt все по порядку.
Я вижу что если делать  OPEN/CLOSE на каждый write то все нормально, но енто уже будет слишком.
Мой файл довольно большой,  300+К рекордов. Может кто может посоветовать как сделать все еффективно, я смотрел методы reports, etc., но пока ето не не надо, мои репорт довольно простой, все готово, токо разобратьса с етой проблемой. 

Спасибо
Владимир

ето мой скрипт для теста только:
======================
#!/usr/bin/perl
use strict;
use warnings;
my $cc="1";
unlink ('spool.dat');
open (OUT_LOG, '>>spool.dat');
open (OUT_HEADER, '>>spool.dat');
open (OUT_DETL, '>>spool.dat');
open (OUT_FOOT, '>>spool.dat');
open (OUT_BR, '>>spool.dat');

#=============================================================================================
format OUT_HEADER=
@<<<====      f0rmat HEADER HEADER HEADER           Page : @<<<
$cc, $cc 
.
format OUT_DETL=
@<<<========  f0ramt   detail line  =======================
$cc
.
format OUT_FOOT=
@<<<========  f0rmat  ===========FOOTER
$cc
.
format OUT_BR=
@<<<========= fOrmat  BREAK 
$cc
.
#===============================================================================================
write OUT_HEADER; $cc++;

write OUT_DETL; $cc++;
write OUT_DETL; $cc++;
write OUT_DETL; $cc++;
    write OUT_BR;    $cc++;

print OUT_LOG "$cc ................print after 1st break \n"; $cc++;

write OUT_DETL; $cc++;
write OUT_DETL; $cc++;
write OUT_DETL; $cc++;
    write OUT_BR; $cc++;
print OUT_LOG "$cc ...............print after 2nd break \n"; $cc++;

write OUT_FOOT; $cc++;

print  "basta \n";



Это сообщение отредактировал(а) trent - 26.1.2010, 05:55
PM MAIL   Вверх
sir_nuf_nuf
Дата 26.1.2010, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А зачем вам форматы в perl ?

Дело в том, что это ооочень старый функционал, можно сказать наследственный
И сейчас никто им не пользуется (Ну кто будет смотреть отчеты в виде простых текстовых файлов ?)

А т.к. никто ими не пользуется - то с советами тоже будет проблема.

Так что 

а) если изучаете их для самообразования - можете смело забить и перейти к следующей теме
б) если хотите строить отчеты.. - сформулируйте изначальную задачу


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


Новичок



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

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



Спасибо за инфу, но мне все равно надо сделать простой .тхт фаил для печати и просмотра.
тут вариантов нету. Задача чисто практическая, все сформулировано, тест скрипт к услугам. 

Основной скрипт почти готов, токо надо совет как бороться с етими бафферами, чтоб все было по порядку.


Влад




Это сообщение отредактировал(а) trent - 27.1.2010, 12:56
PM MAIL   Вверх
DurRandir
Дата 27.1.2010, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Форматы действительно никто не использует smile Проблема похожа на буфферизацию на разных уровнях - но так ли это и как решать, не подскажу. Посмотрите лучше в сторону шаблонизаторов - cpan://HTML::CTPP2. Им можно выводить что угодно, в т.ч. простой текст. Этот шаблонизатор хорош в плане отделения данных от кода, что, в том числе, поможет улучшить сам код.
PM   Вверх
trent
Дата 27.1.2010, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за инфо cpan://HTML::CTPP2, к сожелению ето пока не для меня, равно как методы  reporter, etc.

Да далеко все ушли, будем ждать динозавров.

Один спец посоветовал сделать один filehandle с  var и писать разные форматы через него,  попробую сделать.


Влад

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


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

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


 




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


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

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