Уменьшить количество обращений к файлу

kirl0g

Client
Регистрация
19.02.2016
Сообщения
67
Благодарностей
14
Баллы
8
Доброго дня

Беру данные из файла построчно, с последующим удалением строки
При большом количестве обращений к файлу содержимое файла стирается

Пробовал делать через глобальную переменную
Брать по номеру строки, после взятия номер строки +1
Такая же штука, что переменная становится пустой через какое то время?

Как это можно решить?

=====

Сейчас думаю попробовать брать все данные файла в переменную и уже оттуда брать построчно, но скорее всего нагрузку это не снизит

Критических ошибок в логе нет

Спасибо!
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Загрузи список в проект и убери галочку "сохранять изменения в файл". Потом я обычно использую следующий принцип: получить количество строк в переменную, уменьшить счетчик на 1, взять строку под номером этой переменной (сам выбирай с удалением или без) и потом делай что хочешь и дальше уменьшай счетчик, пока не отработаешь все строки.
 
  • Спасибо
Реакции: kirl0g

kirl0g

Client
Регистрация
19.02.2016
Сообщения
67
Благодарностей
14
Баллы
8
Загрузи список в проект и убери галочку "сохранять изменения в файл". Потом я обычно использую следующий принцип: получить количество строк в переменную, уменьшить счетчик на 1, взять строку под номером этой переменной (сам выбирай с удалением или без) и потом делай что хочешь и дальше уменьшай счетчик, пока не отработаешь все строки.
Спасибо за ответ!

А если брать данные из списка, но не сохранять изменения в файл, то при многопотоке зенка будет обрабатывать одни и те же строки?
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Спасибо за ответ!

А если брать данные из списка, но не сохранять изменения в файл, то при многопотоке зенка будет обрабатывать одни и те же строки?
Да. Поэтому в таком случае либо раздели файл на несколько частей вручную, либо делай сохранение изменений в файл.
 
  • Спасибо
Реакции: kirl0g

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
А как Вы работаете с файлом?
Через операции с файлом?
Работайте через список, сохраняйте изменения списка в файл, таким образом список загружается в память и используется программой, как один общий файл. Т.е. удалив одну строку в первом потоке, второй поток уже возьмёт вторую строку.
Так не должно быть никаких проблем.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)