Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
Друзья! Есть файл src.db (41 тыща строк) и его нужно построчно перегнать в другой файл dst.dbf. Ниже показываю, как я это делаю. Уж больно медленно у меня это всё перегоняется (9 минут 26 секунд). Меж тем на сортировку файла src.dbf уходят считанные секунды! Мне кажется, я что-то не то делаю. Мне кажется, не нужно на обработке КАЖДОЙ СТРОКИ открывать и закрывать файлы, я не знаю. Проблемные места в коде выделил восклицательными знаками.
В FoxPro не шарю совсем, так, изредка на работе просят поправить файлы *.dbf. Реальный код, естессно, другой, поосмысленнее будет. Там строка перегоняется из src.dbf в файл dst.dbf ПО ОПРЕДЕЛЁННОМУ УСЛОВИЮ. Тут я это всё опустил, дабы не загромождать код. Спасибо, кто откликнется. Исправлено 1 раз(а). Последнее : негерой, 11.01.19 22:28 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Удивительный код, конечно.
Если надо скопировать данные из одной dbf-таблицы в другую dbf-таблицу, то что мешает сделать так?
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
вы бы, товарищ помогли мне, если разбираетесь, на вопрос бы ответили, а я бы вам спасибо сказал. Фишка в том, что условие МЕНЯЕТСЯ в процессе копирования (определённое поле каждой записи сравнивается с определённым шаблоном). Сколько-то строк скопировал- шаблон поменялся. Ещё сколько-то скопировал- ещё поменялся. Заранее шаблоны прописать нельзя, они становятся известны только в процессе копирования. Сколько раз они поменяются- тоже заранее неизвестно. Не хочется в дебри залезать, а то так придётся дойти до начальной задачи. Исправлено 4 раз(а). Последнее : негерой, 11.01.19 23:02 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Если условие неизвестно, то неизвестно что советовать. Пока лишь известно, что "почему-то нельзя записать условие, потому что оно меняется". Такой информации недостаточно, чтобы что-то советовать.
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
ну посоветуйте, всякий раз нужно файл открывать и закрывать или нет? |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Честно говоря трудно понять, что вам нужно и от чего меняются условия для вставки данных, но может воспользоваться командой insert которая вставит данные из запроса по условию?
пример из хелпа
------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Открывать и закрывать всякий раз файл не надо. Выходной файл можно открыть в отдельной рабочей области, и в дальнейшем обращаться к этому файлу по alias или просто переходя в рабочую область, где файл располагается. Например
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
Я перегоняю файл построчно. Не скопом, а по одной строке. По одной, понимаете? Ни скопом, а по одной. Правильно ли я перегоняю файл? Посмотрите код, может комментариев добавить для понятности? Условие тут вообще неважно, важно, что оно есть. Просто поверьте, что в реальной задаче оно есть, я просто не встал его вставлять, чтобы не усложнять код. Строчку с определённым шаблоном я сумею сам сравнить, думаю. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Вопрос - а для чего перегонять данные по одной строке если можно их вставить сразу скопом по условию?
------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
FoxPro позволяет записывать ПЕРЕМЕННЫЕ УСЛОВИЯ в виде выражения. Не так часто бывает, что условие абсолютно невозможно записать в опции FOR <условие>. Не говоря уже о том, что есть мощный инструмент SQL-запросов, где можно записывать многоуровневые и вложенные условия, что и предложила использовать Божья коровка
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
По сути у ТC будет -
------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 1 раз(а). Последнее : Божья_коровка, 11.01.19 23:26 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Так, видимо, не получится. Условие меняется в процессе копирования. ТС написал об этом. Но такого рода переменные условия можно записывать и через EVALUATION(), и даже в крайнем случае через макроподстановки. Но не зная сути условий, ничего посоветовать конкретного не получится. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Так ради бога Симпле, пусть условие будет переменным. У меня вообще запросы все формируются динамически. Сформировать строку с условием это же не проблема. Просто действительно не зная сути, трудно советовать. ТС бы хоть версию фокса указал, а то может как у того студента FPD 1 стоит ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 2 раз(а). Последнее : Божья_коровка, 11.01.19 23:32 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
О чем и речь.
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вот же какие твердые.
Подправьте человеку его код, убрав лишние use и счётчики и заменив do while на scan. Ему и понятно будет. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Было бы нелишним для ТС указать версию FoxPro, на которой он работает.
|
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Думаешь ТС insert непонятен? ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Думаю не в inserte проблема, а как раз наоборот, в select. Ну и главное. Условие у него меняется через некоторое количество записей. |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
Божья_коровка Сообщений: 25720 Дата регистрации: 23.08.2001 |
Ну нарисуй ему тогда scan endscan... ------------------ Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается... Исправлено 2 раз(а). Последнее : Божья_коровка, 12.01.19 00:07 |
Re: Правильно ли я перегоняю файл в другой файл построчно? | |
---|---|
негерой Автор Сообщений: 17 Дата регистрации: 11.05.2018 |
Другой коленкор. Больше ничё и не требовалось. Так сделал
Решилось за минуту. Коряво, конечно, ну так что теперь. ...Так, а изначальная задача, более сложная (тут она не представлена), где строки копировались по определённому условию, да ещё и не в один файл, а в несколько- за 54 секунды. Есть над чем подумать. Но это потом. Всем спасибо. Исправлено 1 раз(а). Последнее : негерой, 12.01.19 00:20 |
© 2000-2024 Fox Club  |