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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обозначить конец файла? Работа с массивами. 
:(
    Опции темы
Vldmir
Дата 20.7.2009, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем доброго! 
У меня такой вопрос. Как можно обозначить конец файла при вводе строк с клавиатуры (<STDIN>), помещением этих строк в массив и выводом их на экран.
PM MAIL   Вверх
Itsys
Дата 20.7.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

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



Можно, например вводом пустой строки...
PM MAIL WWW Skype   Вверх
Vldmir
Дата 20.7.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Itsys Интересно узнать как использовать вывод на экран значения массива при помощи символа пустой строки, но также хотелось бы узнать как для обозначения конца файла использовать комбинацию клавиш. У меня почему-то возникает проблема с применением комбинации Ctrl+D.
PM MAIL   Вверх
Itsys
Дата 20.7.2009, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

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



Vldmir, Поподробнее, пожалуйста чего надо добиться....
PM MAIL WWW Skype   Вверх
Vldmir
Дата 20.7.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

Не получается обозначить конец файла.
PM MAIL   Вверх
Itsys
Дата 20.7.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

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



Как то так:
Код

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

PM MAIL WWW Skype   Вверх
Vldmir
Дата 20.7.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за пример! Но как обозначить конец файла используя комбинацию клавиш Ctrl+D или
Ctrl+F и возможно ли вообще осуществить это в Windows.
PM MAIL   Вверх
Pfailed
Дата 20.7.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(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

Это сообщение отредактировал(а) Pfailed - 20.7.2009, 23:59


--------------------
PM MAIL   Вверх
Vldmir
Дата 21.7.2009, 05:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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


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

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


 




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


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

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