Добрый день. Очень нужна ваша помощь
Сторонняя программа записывает в текстовой файл текст примерно следующего содержания (Файл прикрепил)
Пример
Номер товара "цена"цена"цена"цена"цена"
3836262312"32.98"32.99"33.00"34.00"34.90"34.90"34.90"34.90"35.00"36.69"37.04"
3658235837"59.90"59.90"59.90"59.90"60.65"66.86"77.54"
3667111746"31.39"31.99"32.00"34.90"34.90"34.90"34.90"34.90"
Нужно, что бы при запуске этот скрипт открывал файл, считывал строку в массив (где разделитель это знак " ) Где $Array[0] - это номер и [1]..[4]... это цены. Количество цен в строках может быть разным.
И при каждом добавлении новой строки, скрипт начинал считывать с первой строчки номер, искать его в последующих строках и удалять их (полностью всю строку). И так каждый раз с первой строки до последней - новой. Разумеется номер из 100 - ой строки не должен искаться выше, а только со 101-ой и до конца.
Я понимаю, что это "энергозатратный" вариант, так как файл может доходить до 200 тыс. строк. Но мне что то ничего другого в голову не приходит.
Во второй части скрипта нужно, что бы скрипт считывал каждую новую строчку в массив при каждом добавлении и сравнивал цены (но только новые, он не должен проходить все строки, как при первом задании) с лево на право в процентом соотношении следующим образом.
Пример
"32.98"32.99"33.00"34.00"34.90"
[1]Array < [2 ]Array на 30 процентов or [2]Array < [3 ] на 30 процентов итд и так до последней переменной, которую уже ни с чем нельзя сравнить.
если условия выполняются то Msgboxс номером и теми ценами, которые показали между собой разницу в 30 процентов.
Иногда бывает так, что в ценах могут быть буквы, из-за чего может произойти ошибка, поэтому, если переменная не является числом, то её нужно пропустить.
Пример
тут номер 2 мы сравниваем с номером 4, а номер 4 с номером 5. Номер 3 пропускаем.
[1]Array = 20.35< [2 ]Array=30.48 [3]Array =20Х < [4 ]Array=[5]Array =40.20 < [6 ]Array=60
Я понимаю, что указал много условий и задач в одной теме, но именно в таком варианте всё это имеет смысл.
Буду очень ждать Вашей помощи.
Сторонняя программа записывает в текстовой файл текст примерно следующего содержания (Файл прикрепил)
Пример
Номер товара "цена"цена"цена"цена"цена"
3836262312"32.98"32.99"33.00"34.00"34.90"34.90"34.90"34.90"35.00"36.69"37.04"
3658235837"59.90"59.90"59.90"59.90"60.65"66.86"77.54"
3667111746"31.39"31.99"32.00"34.90"34.90"34.90"34.90"34.90"
Нужно, что бы при запуске этот скрипт открывал файл, считывал строку в массив (где разделитель это знак " ) Где $Array[0] - это номер и [1]..[4]... это цены. Количество цен в строках может быть разным.
И при каждом добавлении новой строки, скрипт начинал считывать с первой строчки номер, искать его в последующих строках и удалять их (полностью всю строку). И так каждый раз с первой строки до последней - новой. Разумеется номер из 100 - ой строки не должен искаться выше, а только со 101-ой и до конца.
Я понимаю, что это "энергозатратный" вариант, так как файл может доходить до 200 тыс. строк. Но мне что то ничего другого в голову не приходит.
Во второй части скрипта нужно, что бы скрипт считывал каждую новую строчку в массив при каждом добавлении и сравнивал цены (но только новые, он не должен проходить все строки, как при первом задании) с лево на право в процентом соотношении следующим образом.
Пример
"32.98"32.99"33.00"34.00"34.90"
[1]Array < [2 ]Array на 30 процентов or [2]Array < [3 ] на 30 процентов итд и так до последней переменной, которую уже ни с чем нельзя сравнить.
если условия выполняются то Msgboxс номером и теми ценами, которые показали между собой разницу в 30 процентов.
Иногда бывает так, что в ценах могут быть буквы, из-за чего может произойти ошибка, поэтому, если переменная не является числом, то её нужно пропустить.
Пример
тут номер 2 мы сравниваем с номером 4, а номер 4 с номером 5. Номер 3 пропускаем.
[1]Array = 20.35< [2 ]Array=30.48 [3]Array =20Х < [4 ]Array=[5]Array =40.20 < [6 ]Array=60
Я понимаю, что указал много условий и задач в одной теме, но именно в таком варианте всё это имеет смысл.
Буду очень ждать Вашей помощи.