Author Topic: как объединить несколько строк в одну большую строку ?  (Read 2603 times)

0 Members and 1 Guest are viewing this topic.

fuckanonimus

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Здравствуйте. посоветуйте пжл. , как  из тхт файла с форматом :

1
2
3
4
....
100000
 
 сделать запись в другой тхт с  форматом :

1, 2, 3, 4 ...,  250  (т.е. 250 строк из 1 файла записать в одну строку во второй тхт с разделителем ", ") и т.д пока не закончится первый файл


Первое, что пришло в голову, это:

$x1=TFREAD ("baza.txt", 1)
$x2=TFREAD ("baza.txt", 2)
$x3=TFREAD ("baza.txt", 3)
$x4=TFREAD ("baza.txt", 4)
$x5=TFREAD ("baza.txt", 5)
$x6=TFREAD ("baza.txt", 6)
$x7=TFREAD ("baza.txt", 7)
$x8=TFREAD ("baza.txt", 8)
$x9=TFREAD ("baza.txt", 9)
..
$x250=TFREAD ("baza.txt", 250)

TFWrite("out.txt", StrConcat($x1, ", ", $x2, ", ", $x3, ", ", $x4, ", ", $x5, ", ", $x6, ", ", $x7, ", ", $x8, ", ", $x9, ", ",....... $x250))


TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
TFDELETE ("baza.txt", 1)
.....

Посоветуйте, как можно  упростить код  ..  :)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
TFREADARR("baza.txt", $arr)

$s = ARRSIZE($arr)
FOR($a=0,$a<$s)
   IF($a=0)
      $str = $arr[$a]
   ELSE
      $str = STRCONCAT($str, ",",$arr[$a])
   END_IF
END_CYC

TFWRITE("output.txt", $str)

HALT

Atas

  • Активный участник
  • ***
  • Posts: 147
    • View Profile
При всём уважении, но условие в цикле ничем не оправдано.
Code: (clickermann) [Select]
TFREADARR("baza.txt", $arr)

$s = ARRSIZE($arr)

$str  =  $arr[$a]

FOR($a = 1, $a < $s)
   $str = STRCONCAT($str, ",", $arr[$a])
END_CYC

TFWRITE("output.txt", $str)

HALT