Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
причина проста. Как я знаю, SCAN...ENDSCAN пробегается по ВСЕМ СТРОКАМ в файле *.dbf, а мне в моей изначальной задаче нужно пробегаться не по всем строкам, а начиная со второй. Псевдокод:
Вот видно, что в цикле мы начинаем работать со стоками файла src.dbf, начиная СО ВТОРОЙ СТРОКИ, а не с первой. Потому-то я и ввёл переменную-счётчик, инкрементирую её в цикле и всякий раз сравниваю с общим количеством строк в файле src.dbf ++++++++++++++++++++++++++++++++++++++++++++ Подобные объяснения КРАЙНЕ НЕУМЕСТНЫ в первом посте, поскольку захламляют тему. Исправлено 2 раз(а). Последнее : негерой, 12.01.19 14:37 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Для этого есть варик
Scan rest Начинает перебор не с начала таблицы, а с текущей записи. Исправлено 2 раз(а). Последнее : Taran, 12.01.19 18:01 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну и ежели всё-таки хочется через do while то
Т.е. внутри do whike...enddo не нужно делать GO. Перебор записей делает skip. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
просто изначально я отказался от SKIP-а, поскольку открывал-закрывал файлы и при открытии файла текущей оказывалась не та запись, куда пригнули SKIP-ом в последний раз, а первая, что ли. Но теперь, раз я знаю, что файлы необязательно постоянно открывать-закрывать, можно попробовать использовать SKIP. Исправлено 1 раз(а). Последнее : негерой, 12.01.19 14:51 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Ага, есть такое. Побуду занудой и отошлю ТС опять к хелпу -
Цитата: ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 1 раз(а). Последнее : Божья_коровка, 12.01.19 14:55 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну это понятно.
И scan rest попробуй предварительно встав на вторую запись. В твоей задаче scan более очевиден чем do while. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Так вот кто ворует мои яблоки... Не "кое-что сделали", а закриптовали/раскриптовали. Отсюда и "секретность" ТС. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ээх был бы у меня компьютер, интернет и чуточка мозгов.. Я бы столько тут написал и навалил бы горы кода. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Кагбы по мотивам... - Да если б мне дали полтарелки супа, я бы весь зал... |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
Изначальная задача стоит так: есть файл src.dbf с несколькими полями. Одно поле POSTAV имеет в разных записях разные значения, например "Водоканал", "Канализация", "РУК", "Теплосервис". Ну то есть сколько-то тыщ записей с полем POSTAV, равным "Водоканал", сколько-то равным "РУК" ну и так далее.
Что важно, заранее мы НЕ ЗНАЕМ ни значения полей ни количество ЗНАЧЕНИЙ. Ну то есть можно обработать файл src.dbf и их узнать. Но не заранее. Ну всё, файл src.dbf нужно разбить на столько подфайлов, сколько значений имеет поле POSTAV (4 файла в нашем случае) и каждую запись в соответствующий файл занести. ++++++++++++++++++++++++++++++++++++++++++++++++++ Алгоритм прост и единственен, по-моему. Сортируем src.dbf, считываем первую запись, заносим из неё значение поля POSTAV в строку-шаблон. А потом цикл. Пробегаемся по всем оставшимся записям в файле src.dbf и сравниваем их с шаблоном. Наблюдаем равенство- пихаем их в соответствующий подфайл. Не наблюдаем равенства- создаём другой подфайл, меняем шаблон, МЕНЯЕМ УСЛОВИЕ, и считываем дальше, пока до конца файла src.dbf не дойдём. С помощью моих новых друзей я это реализовал уже, около трёх секунд работает. ++++++++++++++++++++++++++++++++++++++++++++++++++ Принципиально вряд ли что тут поменять можно. Разве что один синтаксический сахар на другой. Вот ненужные открытия-закрытия файлов действительно сильно тормозили работу. Исправлено 2 раз(а). Последнее : негерой, 12.01.19 15:16 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Про полтарелки не знаю...
Исправлено 1 раз(а). Последнее : Taran, 12.01.19 17:58 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
С этого и надо было начинать. Все решается совсем иначе. Ну это ежели интересно. А так работает - и так сойдёт. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
я не первый день на свете живу. Кто бы стал со мной возиться? И были бы правы. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
И тем не менее именно при такой постановке вопроса вам уже давно бы накидали бы рабочий код без всех этих идиотских разборок и дилетантских способов решения элементарной задачи. Пока я был свободен вы тут занимались закатом солнца вручную, а теперь я занят. Ждите когда кто-нить (может и я) накидает вам что-то похожее на нормальное решение вашей задачи вместо того бреда, что вы нагенерили. ------------------ Лень - это неосознанная мудрость. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Прям заинтриговал нехваткой времени на десяток строк кода. Ждем'с. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Тривиально. И совсем не обязательно мудрить, пытаясь за 1 проход это всё сделать. Именно что "по-моему"... И ничего "простого" в переключениях с одной выходной таблицы на другую нет. А позаписная обработка в ситуациях когда можно обрабатывать сразу весь массив данных (при том индекс позволяет внутренне фоксу НЕ читать каждый раз все записи из таблицы) - это неправильно. Пример на курсорах, без особых проблем переделывается на TABLE - ну и создавать тестовую таблицу src вам не нужно.
------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 12.01.19 19:26 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Игорь, сейчас ТС скажет - да не нужен мне ваш scan, и ваши select'ты Он хочет DO WHILE
Или напишет как мне - Он по одной хочет ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 1 раз(а). Последнее : Божья_коровка, 12.01.19 19:29 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Обойдетесь! Игорь вон уже накидал именно то, что и я подразумевал. Всего 4(четыре) строки, а не десяток. Это что минимально нужны, без всяких тормозящих визуализаций. ------------------ Лень - это неосознанная мудрость. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Это его проблемы. Он мне напомнил персонажа, который пришел обучаться вождению автомобиля и на объяснения про руль и педали заявил: "мне не они нужны, покажите мне как колеса поворачивать". ------------------ Лень - это неосознанная мудрость. |
© 2000-2024 Fox Club  |