Author Topic: работа с текстом  (Read 2567 times)

0 Members and 1 Guest are viewing this topic.

Aleksandr31

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
работа с текстом
« on: March 13, 2015, 11:11:32 AM »
Подскажите как организовать такой скрипт.
Есть текстовый файл такого вида
2:54
2:345
2:420
3:19
3:220
3:365
3:415
4:460
а нужно получить на выходе, файл такого вида
2: 54 345 420
3: 19 220 365 415
4: 460
чего то не как не могу сообразить как завязать найти обрезать вставить в нужную строку  :(. Спасибо за понимание.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: работа с текстом
« Reply #1 on: March 13, 2015, 11:15:03 AM »
Первый сортированный?


Aleksandr31

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: работа с текстом
« Reply #2 on: March 13, 2015, 11:46:11 AM »
да первый сортированный, но количество одинаковых значений может быть разным

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: работа с текстом
« Reply #3 on: March 13, 2015, 11:51:12 AM »
Code: (clickermann) [Select]
$file_in = "file_in.txt"
$file_out = "file_out.txt"

$out = ""
$count = TFCOUNT("file_in.txt")
LOGWRITE ("Входящих строк: ", $count)

FOR($i=1, $i < ($count+1))
   $str = TFREAD($file_in, $i)
   $ind = STRCUT2 ($str, 1, STRPOS ($str,":")-1)
   IF($out = "")
      $out = $str
      $index = $ind
   ELSE
      IF($index = $ind)
         $data = STRCUT2 ($str, STRPOS ($str,":")+1, 999)
         $out = STRCONCAT($out, " ", $data)
      ELSE
         TFWRITE($file_out, $out)
         $out = $str
         $index = $ind
      END_IF 
   END_IF
END_CYC

TFWRITE($file_out, $out)
HALT


Aleksandr31

  • Зашел в гости
  • *
  • Posts: 19
    • View Profile
Re: работа с текстом
« Reply #4 on: March 13, 2015, 12:12:09 PM »
ОГРОМНОЕ СПАСИБО! по моему Всё Работает  :D, пока в процессе почти 40 000 строк обрабатывает.

Все Отлично, Vint еще Раз Спасибо.
« Last Edit: March 13, 2015, 12:23:37 PM by Aleksandr31 »