Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Как обозначить конец файла?


Автор: Vldmir 20.7.2009, 19:41
Всем доброго! 
У меня такой вопрос. Как можно обозначить конец файла при вводе строк с клавиатуры (<STDIN>), помещением этих строк в массив и выводом их на экран.

Автор: Itsys 20.7.2009, 19:44
Можно, например вводом пустой строки...

Автор: Vldmir 20.7.2009, 20:05
Itsys Интересно узнать как использовать вывод на экран значения массива при помощи символа пустой строки, но также хотелось бы узнать как для обозначения конца файла использовать комбинацию клавиш. У меня почему-то возникает проблема с применением комбинации Ctrl+D.

Автор: Itsys 20.7.2009, 20:34
Vldmir, Поподробнее, пожалуйста чего надо добиться....

Автор: Vldmir 20.7.2009, 20:55
Я в прграммировании новичок, так что не судите строго smile 
Но вот, например, у меня не срабатывает этот код :
Код

#!/usr/bin/perl -w
print "Enter the list of strings:\n";
@list = <STDIN>;
print @list;

Не получается обозначить конец файла.

Автор: Itsys 20.7.2009, 21:04
Как то так:
Код

print "Enter the list of strings:\n";
while (<STDIN>){
    chomp;
    if ($_){
        push (@list, $_."\n");
    }
    else{
        last;
    }
}
print @list;

Автор: Vldmir 20.7.2009, 21:12
Спасибо за пример! Но как обозначить конец файла используя комбинацию клавиш Ctrl+D или
Ctrl+F и возможно ли вообще осуществить это в Windows.

Автор: Pfailed 20.7.2009, 23:53
Цитата(Vldmir @ 20.7.2009,  21:12)
Спасибо за пример! Но как обозначить конец файла используя комбинацию клавиш Ctrl+D или
Ctrl+F и возможно ли вообще осуществить это в Windows.

Как с CTRL+F и с CTRL+D не знаю, но с CTRL+C можно так извратиться:
Код

$SIG{INT} = 'IGNORE';

@list = <>;

print @list;


А вообще аналог Ctrl+D в windows это Ctrl+Z+Enter

Автор: Vldmir 21.7.2009, 05:12
Скорее всего это связано с настройкой командной строки, ибо по умолчанию опция конца файла отключена. По инструкциям, чтобы включить эту опцию необходимо вызвать коммандную строку и ввести cmd/F:ON, тогда по идее эта опция считается включённой и конец файла должен обозначаться нажатием Ctrl+F для имён файлов. Также можно поправить реестр, изменив параметры четырёх ключей на значение dword:=00000004  или dword:=00000006, что устанавливает комбинацию клавиш Ctrl+D и Ctrl+F соответственно для всех вызовов командной строки на данном компьютере. Я испробовал оба варианта, но результат в обоих случаях оказался отрицательным  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)