Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Болталка (https://forum.antichat.xyz/forumdisplay.php?f=46)
-   -   Вытащить определенные фрагменты из txt (https://forum.antichat.xyz/showthread.php?t=202021)

sultan128 06.05.2010 02:52

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

zer0day 06.05.2010 03:16

Такая штука парсер называется

Kusto 06.05.2010 03:29

Цитата:

Сообщение от 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. :D запостил бы в тематическом разделе в вопросах, получил бы на том ЯП который тебе ближе- а так мучайся- выбирай из этих вариантов что тебе предложили :D

Fepsis 06.05.2010 03:29

Код:

#!/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);


lukmus 06.05.2010 03:30

это на руби, не тестировалось
Код:

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


sultan128 06.05.2010 04:58

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

cipa21 10.05.2010 09:24

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


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

login999 10.05.2010 09:33

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))

Уже для двух файлов )

cipa21 10.05.2010 09:37

Спс, щас питон поставлю ,проверю, спасибо за заботу и помощ ;)

altblitz 10.05.2010 10:02

Kusto!
пугаешь молодёжь RegEx-сами ))

написан код правильно.


Время: 14:41