Автор Тема: Насчет эмулятора юниха!!!  (Прочитано 18557 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Masta A

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 18
  • +0/-0
  • 0
    • Просмотр профиля
    • http://novaiagazeta.org.ru
Насчет эмулятора юниха!!!
« : 26 Июля 2001, 12:43:37 »
Ктонить скажет есть ли какойто эмулятор юниха под мастдай?
Те.е чтобы команды юниха работали под мастдаем.А то как то линух ставить не то что не охота а не зачем .Машина к нету раз в полгода подключается да и сетки нет.А выучит команды и вообще систему охота ой как!

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
Насчет эмулятора юниха!!!
« Ответ #1 : 06 Апреля 2001, 11:13:24 »
Цитировать
DamonLSD (06-04-2001 10:08):
Привет, All
У меня вопрос следующего плана.
Имеется файл, в этом файле есть строки следующего формата: 20:51:12 (это время). В файле также может встретиться символ ":" (двоеточие).
Вопрос: каким образом можно удалить ВСЮ строку, которая содержит символ ":", не затронув при этом двоеточия в тексте времени? Т.е. если встретился символ ":" и он не соответствует формату \\d\\d:\\d\\d:\\d\\d то строку нужно удалить.

Спасибо.

А в чем проблема? Читаешь построчно файл: сравниваешь его с твоей маской. Если подходит, то оставляешь строку.

PS Символ, соответствующий формату? Круто...
PPS Хранил бы время одним числом.
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн yarik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 22
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.scooterzone.agava.ru/
Насчет эмулятора юниха!!!
« Ответ #2 : 07 Апреля 2001, 05:39:46 »
Ха, приколисты, "символ не соответствующий формату" ;)
Тебе дело говорят, хранил бы числом и проблем не было

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Насчет эмулятора юниха!!!
« Ответ #3 : 07 Апреля 2001, 09:07:00 »
Цитировать
yarik (07-04-2001 05:39):
Ха, приколисты, "символ не соответствующий формату" ;)
Тебе дело говорят, хранил бы числом и проблем не было
Не дело - потому что потребуется удалить строки, в которых встречается число, и задача сведется к предыдущей.:))

if ($str =~ m/^\\d\\d:\\d\\d:\\d\\d.*:/ )
{
#удалить
}
2B OR NOT 2B = FF

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
Насчет эмулятора юниха!!!
« Ответ #4 : 07 Апреля 2001, 09:35:16 »
Цитировать
Chs (07-04-2001 09:09):
Цитировать
yarik (07-04-2001 05:39):
Ха, приколисты, "символ не соответствующий формату" ;)
Тебе дело говорят, хранил бы числом и проблем не было
Не дело - потому что потребуется удалить строки, в которых встречается число, и задача сведется к предыдущей.:))

Автору надо было удалить строки с \':\', коих в числах пока не встречается :-)

2Автор: мог бы и написать - зачем это надо - может, может и решение красивее будет.
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн DamonLSD

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 53
  • +0/-0
  • 0
    • Просмотр профиля
Насчет эмулятора юниха!!!
« Ответ #5 : 07 Апреля 2001, 13:44:14 »
Цитировать
yarik (07-04-2001 05:39):
2Автор: мог бы и написать - зачем это надо - может, может и решение красивее будет.

Ну елки-палки, ну что вы ВСЕ сразу набросились :(
Попробую все объяснить. Файл состоит из строк вот такого формата:
Исходящ   7CF    22999             79387   00:22:50 - 00:22:56
Исходящ   7CF    22999             77246   00:23:32 - 00:23:32
Исходящ   6C2    22730   84213752350   00:23:40 - 00:23:50
Исходящ   7CF    22999             77239   00:23:52 - 00:23:52

но встречаются и строки "паразиты" :) которые содержат это самое двоеточие, например:
Внутрен   024    22131          9:204454   15:29:24 - 15:29:58
ДВО       222    21546                :5   02:25:24 - 02:25:24

ВОТ ЭТИ СТРОКИ "паразиты" И НУЖНО УДАЛИТЬ!
Кто еще, что подскажет?

Большое лам-Спасибо.
Good Luck,
   Damon LSD.

Оффлайн Light Elf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
Насчет эмулятора юниха!!!
« Ответ #6 : 07 Апреля 2001, 22:37:48 »
$file = \'что-то где-то\';
open (FILE, "+<$file");
while (){
    @blank = split /-/, $_;
    push @normal_strings, $_ if (!($blank[0] =~ /:/));
}
seek(FILE, 0,0);
truncate FILE, 0;
print FILE @normal_strings;
С уважением,
Light Elf

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
Насчет эмулятора юниха!!!
« Ответ #7 : 08 Апреля 2001, 15:28:28 »
Цитировать
Light Elf (07-04-2001 22:37):
$file = \'что-то где-то\';
open (FILE, "+<$file");
while (){
    @blank = split /-/, $_;
    push @normal_strings, $_ if (!($blank[0] =~ /:/));
}
seek(FILE, 0,0);
truncate FILE, 0;
print FILE @normal_strings;

Не круто, учитывая каких размеров бывают логи...

PS Что-то файлы закрывать забываешь...
PPS Что-то readme.txt глючит....
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн Light Elf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
Насчет эмулятора юниха!!!
« Ответ #8 : 11 Апреля 2001, 20:24:34 »
можно связать текстовый файл с массивом с помощью tie. Тогда память не будет загружаться.
С уважением,
Light Elf

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Насчет эмулятора юниха!!!
« Ответ #9 : 12 Апреля 2001, 09:05:32 »
Цитировать
DamonLSD (07-04-2001 13:44):
но встречаются и строки "паразиты" :) которые содержат это самое двоеточие, например:
Внутрен   024    22131          9:204454   15:29:24 - 15:29:58
ДВО       222    21546                :5   02:25:24 - 02:25:24
ВОТ ЭТИ СТРОКИ "паразиты" И НУЖНО УДАЛИТЬ!
Кто еще, что подскажет?

А откуда эти "строки-паразиты" берутся-то? Не легче ли с ними бороться до их попадания в файл?
С наилучшими пожеланиями. LODEVAR

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
Насчет эмулятора юниха!!!
« Ответ #10 : 12 Апреля 2001, 16:36:58 »
Цитировать
Light Elf (11-04-2001 20:24):
можно связать текстовый файл с массивом с помощью tie. Тогда память не будет загружаться.

tie() массивов не поддерживает многие, специфичные для массивов функции (ну, unshift(), например)
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн Light Elf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
Насчет эмулятора юниха!!!
« Ответ #11 : 12 Апреля 2001, 20:58:54 »
Задача: обработать текстовый файл не загружая память и удалить из файла стрики неверного формата. Функция tie с этим справится.
С уважением,
Light Elf

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
Насчет эмулятора юниха!!!
« Ответ #12 : 13 Апреля 2001, 08:15:30 »
Цитировать
Light Elf (12-04-2001 20:58):
Задача: обработать текстовый файл не загружая память и удалить из файла стрики неверного формата. Функция tie с этим справится.

Замучаешся ты это через tie() делать. Не говоря уже о быстродействии.
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн DamonLSD

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 53
  • +0/-0
  • 0
    • Просмотр профиля
Насчет эмулятора юниха!!!
« Ответ #13 : 13 Апреля 2001, 08:21:37 »
Цитировать
Light Elf (12-04-2001 20:58):
Задача: обработать текстовый файл не загружая память и удалить из файла стрики неверного формата. Функция tie с этим справится.

Light Elf, а можно чуточку подробнее об этом?
Буду очень признателен.
Good Luck,
   Damon LSD.

Оффлайн Light Elf

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
Насчет эмулятора юниха!!!
« Ответ #14 : 14 Апреля 2001, 19:40:23 »
use DB_File;
$dbobj = tie(@lines, "DB_File", $file, O_RDWR|O_CREATE, 0666, $DB_RECNO);

$lines[0] = \'one\';
$lines[1] = \'two\';

#добавление новой записи:
$i = 1; #номер, после которой вставить.
$dbobj->put($i, \'New One\', R_IBEFORE);
# R_IBEFORE or R_IAFTER.

#удаление записи:
$bdobj->del($Nomer);

undef $dbobj;
untie @lines;
#########################
С уважением,
Light Elf

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28