HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ОФФТОП > Болталка
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Вытащить определенные фрагменты из txt
  #1  
Старый 06.05.2010, 02:52
sultan128
Познающий
Регистрация: 06.04.2008
Сообщений: 93
С нами: 9524559

Репутация: 77
По умолчанию Вытащить определенные фрагменты из txt

Есть текстовый файл, предполжим такого вида:
"...Параметр -savehelps заставляет сохранить файл helps.txt. Фрагмент файла ROM=KJF5IDJGJ для иллюстрации: ... #RACE хранит шаблон, по которому создаются мобы определенной ROM=2JL7JVS9GJ разновидности (расы, вида и т.п.). ..."
Как вытащить то, что находится после "ROM=" в отдельный файл? чтобы на выходе был txt, содержий в себе:
KJF5IDJGJ
2JL7JVS9GJ
.............
 
Ответить с цитированием

  #2  
Старый 06.05.2010, 03:16
zer0day
Banned
Регистрация: 02.05.2010
Сообщений: 0
С нами: 8435906

Репутация: 0
По умолчанию

Такая штука парсер называется
 
Ответить с цитированием

  #3  
Старый 06.05.2010, 03:30
lukmus
Постоянный
Регистрация: 18.11.2009
Сообщений: 709
С нами: 8674045

Репутация: 214


По умолчанию

это на руби, не тестировалось
Код:
infl=File.new("infile.txt","rb")
outfl=File.new("outfile.txt","a")
while !infl.eof do   outfl.puts infl.gets.chop.split("ROM=")[1] end
outfl.close
infl.close

Последний раз редактировалось lukmus; 06.05.2010 в 03:32..
 
Ответить с цитированием

  #4  
Старый 06.05.2010, 03:29
Kusto
Moderator - Level 7
Регистрация: 04.02.2007
Сообщений: 554
С нами: 10139306

Репутация: 1089


По умолчанию

Цитата:
Сообщение от sultan128  
Есть текстовый файл, предполжим такого вида:
"...Параметр -savehelps заставляет сохранить файл helps.txt. Фрагмент файла ROM=KJF5IDJGJ для иллюстрации: ... #RACE хранит шаблон, по которому создаются мобы определенной ROM=2JL7JVS9GJ разновидности (расы, вида и т.п.). ..."
Как вытащить то, что находится после "ROM=" в отдельный файл? чтобы на выходе был txt, содержий в себе:
KJF5IDJGJ
2JL7JVS9GJ
.............
Проверь (мне лень)
PHP код:
<?php
 
$text 
=file_get_contents('txt.txt');  
preg_match_all("#ROM=(.*)#iU",$text$out );
$result $out[1];   
foreach(
$result as $value)   
  {   
     echo 
"$value <br />";  
    
flush(); 
  }  

?>
Правда вывод не в файл сделал а на экран...если что- сам допишеш пару строчек сохранения файла ...

P.S. запостил бы в тематическом разделе в вопросах, получил бы на том ЯП который тебе ближе- а так мучайся- выбирай из этих вариантов что тебе предложили

Последний раз редактировалось Kusto; 06.05.2010 в 03:45..
 
Ответить с цитированием

  #5  
Старый 06.05.2010, 03:29
Fepsis
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
С нами: 9288386

Репутация: 536


По умолчанию

Код:
#!/usr/local/bin/perl

open(F, 'in.txt'); 
$f = join('', <F>);
close(F);

@ar = $f =~ /ROM=(.+?)\s/g;

open(OUT, '>> oit.txt');

foreach (@ar)
   {
	print OUT "$_\n";
   }

close(OUT);
 
Ответить с цитированием

  #6  
Старый 06.05.2010, 04:58
sultan128
Познающий
Регистрация: 06.04.2008
Сообщений: 93
С нами: 9524559

Репутация: 77
По умолчанию

Всем спс, заюзал последний вариант
 
Ответить с цитированием

  #7  
Старый 10.05.2010, 09:24
cipa21
Новичок
Регистрация: 09.04.2009
Сообщений: 8
С нами: 8994048

Репутация: 0
По умолчанию

Ребятки а кто мне поможет, очень нужно, нигде найти не могу парсера что бы делал из текста: user:86359b816ab3adff0ae96dbed4b7ddb6 в текст:
86359b816ab3adff0ae96dbed4b7ddb6:user
Заранее очень благодарен! Пойдет и php и perl


А еще лучше если парсер будет объединять 2 словаря, список юзеров и хэшей в:
86359b816ab3adff0ae96dbed4b7ddb6:user

Последний раз редактировалось cipa21; 10.05.2010 в 09:37..
 
Ответить с цитированием

  #8  
Старый 10.05.2010, 09:33
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами: 9427413

Репутация: 973


По умолчанию

A Python ?
Код:
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
with open("input_1.txt") as inpt1:
    with open("input_2.txt") as inpt2:
        with open("out.txt", "w") as out:
            for line in inpt1:
                line = line.strip().split(":")
                if len(line) == 2:
                    out.write("{0}:{1}\n".format(line[1], line[0]))
                else:
                    print "BAD FORMAT {0}".format(":".join(line))
            for line in inpt2:
                line = line.strip().split(":")
                if len(line) == 2:
                    out.write("{0}:{1}\n".format(line[1], line[0]))
                else:
                    print "BAD FORMAT {0}".format(":".join(line))
Уже для двух файлов )

Последний раз редактировалось login999; 10.05.2010 в 09:44..
 
Ответить с цитированием

  #9  
Старый 10.05.2010, 10:10
cipa21
Новичок
Регистрация: 09.04.2009
Сообщений: 8
С нами: 8994048

Репутация: 0
По умолчанию

Цитата:
Сообщение от login999  
A Python ?
Код:
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
with open("input_1.txt") as inpt1:
    with open("input_2.txt") as inpt2:
        with open("out.txt", "w") as out:
            for line in inpt1:
                line = line.strip().split(":")
                if len(line) == 2:
                    out.write("{0}:{1}\n".format(line[1], line[0]))
                else:
                    print "BAD FORMAT {0}".format(":".join(line))
            for line in inpt2:
                line = line.strip().split(":")
                if len(line) == 2:
                    out.write("{0}:{1}\n".format(line[1], line[0]))
                else:
                    print "BAD FORMAT {0}".format(":".join(line))
Уже для двух файлов )
пишет BAD FORMAT 86359b816ab3adff0ae96dbed4b7ddb1
BAD FORMAT 86359b816ab3adff0ae96dbed4b7ddb2
BAD FORMAT user1
BAD FORMAT user2
 
Ответить с цитированием

  #10  
Старый 10.05.2010, 10:17
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
С нами: 9427413

Репутация: 973


По умолчанию

Цитата:
Сообщение от cipa21  
пишет BAD FORMAT 86359b816ab3adff0ae96dbed4b7ddb1
BAD FORMAT 86359b816ab3adff0ae96dbed4b7ddb2
BAD FORMAT user1
BAD FORMAT user2
Конешн, слава богу что додумался сделать проверку )))
Чет мну кажется что я тебя не совсем верно понял.
Код:
#!/usr/bin/env python
#-*-encoding:UTF-8-*-
with open("input_1.txt") as inpt1:
    with open("input_2.txt") as inpt2:
        with open("out.txt", "w") as out:
            while True:
                try:
                    part_one = inpt1.next().strip()
                    part_two = inpt2.next().strip()
                    out.write("{0}:{1}\n".format(part_one, part_two))
                except StopIteration:
                    print "FINISHED"
                    break
raw_input()
Попробуй так.
Прошлый же делает замену как ты хотел + делает это для двух файлов и пишет в третий.

Последний раз редактировалось login999; 10.05.2010 в 10:19..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите вытащить видео с сайта.. ne4eHbKo Болталка 2 04.03.2010 21:00
вытащить переменную со smarty ultimatum PHP 2 01.11.2009 01:42
Уязвимость в IE 6.0 при обработке файлов jpg, gif, txt. SpiderX Статьи 10 24.04.2005 00:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.