Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Perl
Регистрация

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



Ответ
 
Опции темы
Старый 17.07.2011, 17:53   #1
Max1548
Форумчанин
 
Регистрация: 28.05.2011
Сообщений: 94
Репутация: 10
Восклицание Текстовый редактор на perl

Написал редактор, но с ошибкой, которую найти не могу, он считывает все текстовые файлы, но если там есть пустая строка, то он останавливается.
Просьба помогите.
Вот код:
Код:

#!/usr/bin/perl -w
use CGI::Carp qw(fatalsToBrowser); 
use CGI qw( :standard);

my $write = param ("write") || "";
my $file = param ("file") || "Ура.txt";
my $text = param ("text") || "";
my $nfile = param ("newfile") || $file || "";
$file2 = \$file;

if ($write eq "saved") {
$write = "Файл успешно сохранен<br>\n";
}
elsif ($write eq "help") {
$write = "Помощь:<br>Чтобы открыть/создать файл введите его имя.<br>Чтобы сохранить его нажмите сохранить.<br>";
}
else {
$write = "";
}
if ($file ne "") {
print "Content-type: text/html\n\n";
print "<Title>Текстовый редактор</title>";
print "$write\n";
open (FILE, "$file");
flock (FILE, 2);
{
 local $/ = "";
 $text = <FILE>;
}
flock (FILE, 8);
close (FILE);
print "<b>Файл успешно открыт: </b>\n";
print "<Form>\n";
print "<Input type=\"text\" name=\"file\" value=\"$file\">\n";
print "<Input type=\"submit\" value=\"Открыть\"><br>\n";
print "</form>\n";
print "<Form>\n";
print "<textarea name=\"text\" cols=\"72\" rows=\"25\">$text</textarea><br>\n";
print "Сохранение файла:<br>\n";
print "<input type=\"text\" name=\"newfile\" value=\"$file\"><input type=\"submit\" value=\"Сохранить\">";
}
elsif ($nfile ne "") {
open (FILE, ">$nfile");
flock (FILE, 2);
print FILE "$text";
flock (FILE, 8);
close (FILE);
print "Location: WordPad.pl?write=saved\n\n";
}
else {
print "Content-type: text/html\n\n";
print "<Title>Текстовый редактор</title>";
print "$write\n";
print "Введите имя файла:\n";
print "<Form>\n";
print "<Input type=\"text\" name=\"file\" value=\"$file\">\n";
print "<Input type=\"submit\" value=\"Открыть\"><br>\n";
print "</form>\n";
}
print "<br><a href=WordPad.pl?write=help>Помощь</a>\n";

__________________
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума   Ответить с цитированием
Старый 18.07.2011, 15:00   #2
ssdm
Участник клуба
 
Регистрация: 20.05.2009
Адрес: СПб
Сообщений: 506
Репутация: 90

icq: 212307232
По умолчанию

Код:

open (FILE, "$file");
flock (FILE, 2);
{
 local $/ = "";
 $text = <FILE>;
}
flock (FILE, 8);
close (FILE);

В этом участке кода вы считываете одну условную "строку" использя разделитель пустую строку.
Замените это творение
Код:

{
 local $/ = "";
 $text = <FILE>;
}

на
Код:

 $text.= $_ while <FILE>;

ssdm вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовый редактор... Olaf Общие вопросы .NET 3 26.12.2009 04:33
Текстовый редактор Яр|/||< (^_^) Общие вопросы Delphi 7 22.12.2009 21:01
Текстовый редактор Яр|/||< (^_^) Общие вопросы C/C++ 2 21.12.2009 13:28
Текстовый редактор на C sht0p0r Помощь студентам 10 05.12.2008 04:25
Текстовый редактор Михаил Юрьевич Общие вопросы Delphi 8 10.04.2008 20:17




04:57.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru