Author Topic: В начале каждой строки вставить один и тот же текст  (Read 1618 times)

0 Members and 1 Guest are viewing this topic.

Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
Добрый день. Предо мной более 7К строк, с равным кол-вом цифр в каждой. Стоит задача в начале каждой строки вставить один и тот же текст. Голову еще не сломал, прошу спасите. Как правильно составить скрипт?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
в помощь функции для работы с тестом (если речь идет о текстовом документе).

TFCOUNT ("file") - числовая функция; возвращает кол-во строк в файле
STRCONCAT ("str1", "str2", ...) - строковая функция; возвращает объединенную строку
TFREAD ("file", str_n) - строковая функция; считывает строку из файла
TFWRITE ("file", "str", [str_n]) - записывает строку в файл

а вот готовый скрипт:
Code: (clickermann) [Select]
FOR($a=1, $a < TFCOUNT("input.txt")+1)
   TFWRITE("output.txt",STRCONCAT ("один и тот же текст ",TFREAD ("input.txt", $a)), $a)
END_CYC
halt

"input.txt" - обрабатываемый файл.
"output.txt" - отредактированный файл, итог работы скрипта.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
После TFWRITE нужно поставить задержку маленькую, а то будет сбоить.
И да, почему частный вопрос не вывести в отдельную тему? Зачем это в типовых алгоритмах?


Loginow

  • Освоившийся
  • **
  • Posts: 35
    • View Profile
dramster, благодарю вас. Vint прошу простить, впредь не повторится.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Более правильно делать это через массив. Не нужно будет 7000 раз читать и переписывать файл  :o
Code: (clickermann) [Select]
TFREADARR("Input.txt", $arr) // читаем файл в массив
FOR($a=0,$a<ARRSIZE($arr)) // обрабатываем
   $arr[$a] = STRCONCAT("Текст ", $arr[$a])
END_CYC
TFWRITEARR("Output.txt", $arr) // записываем массив в новый файл

halt
« Last Edit: April 30, 2017, 08:06:00 AM by Oraven »