Author Topic: Чтение данных из файла.  (Read 1939 times)

0 Members and 1 Guest are viewing this topic.

putman

  • Активный участник
  • ***
  • Posts: 199
    • View Profile
Чтение данных из файла.
« on: July 21, 2019, 01:13:09 PM »
Есть ли возможность считать весь файл в одну переменную, а не в массив ?
Массив потом приходится очень долго перебирать, в переменной же на порядок быстрее поиск происходит.

Doc

  • Зашел в гости
  • *
  • Posts: 2
    • View Profile
Re: Чтение данных из файла.
« Reply #1 on: July 21, 2019, 06:16:08 PM »
В одно действие считать файл в переменную не получится. Только с циклом.
Из буфера обмена можно взять без цикла, с фильтром, но без разделителя строк. Или с разделителем, но в цикле. Всё это конечно не то.

Примеры с буфером:
Code: (clickermann) [Select]
$str = FROMCLIP()

$string = STRFILTER($str, char(13), 0) // без разделителя
$string = STRFILTER($string, char(10), 0)
LOGWRITE ($string)

//--------------------------------

WHILE(STRPOS($str, char(13)))
   $str = STRREPLACE($str, char(13), ":") // с разделителем
   $str = STRREPLACE($str, char(10), "")
END_CYC

LOGWRITE ($str)

HALT

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Чтение данных из файла.
« Reply #2 on: July 21, 2019, 08:25:39 PM »
Есть ли возможность считать весь файл в одну переменную, а не в массив ?

Нет. Можно конечно построчно собрать весь текст в одну переменную, но на это уйдет времени не меньше чем на возню с массивом.

putman

  • Активный участник
  • ***
  • Posts: 199
    • View Profile
Re: Чтение данных из файла.
« Reply #3 on: July 21, 2019, 09:55:45 PM »
Примеры с буфером:
От буфера я отказался, очень он нестабилен.

Нет. Можно конечно построчно собрать весь текст в одну переменную, но на это уйдет времени не меньше чем на возню с массивом.
Это точно.
Файл весом 50 Кб загружается из сети за 200 мс. на жёсткий диск. А извлечение в переменную примерно шестиста строк занимает 1.5 секунды.

Очень жалко, что кликером нельзя менять прокси, тогда бы все проблемы были решены разом.