|
|
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
У мея загвоздка с временем перегона MEMO-поля из DBF в TXT и наоборот... Если у кого есть лучше вариант или кто может помочь с ускорением работы плиз хелп... Перегон из DBF в TXT Код: plaintext 1. 2. 3. 4. 5. 6. 7. my_znach_fpt - значение всех мемо-полей с разделителем CHR(1) и заменеными CHR(10) на CHR(3) и CHR(13) на CHR(4) Отрабатывает 3 сек. при 3 мемо-полях и 43700 записей Перегон из DBF в TXT Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. my_znach - масив для текстовых полей. kol_zn - количество полей(в данном случае 3) my_rep_mem - перезаписываются значения мемо-полей значениями всех текстовых-полей без разделителем CHR(1) и заменеными CHR(3) на CHR(10) и CHR(4) на CHR(13) Отрабатывает от 9 до 12 сек. при 3 мемо-полях и 43700 записей при чем простая обработка файла отрабатывает 1 сек. Плиз хелп... Очень нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:10 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
а так? COPY MEMO MemoFieldName TO FileName [ADDITIVE] [AS nCodePage] ADDITIVE - добавляет мемо поле в конец указаного текстового файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:36 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
И что мне это даст??? Мне надо культорно передать... Что б другая прога... На другом языке мою ху... понимала + плюс я сам эту ху... должен быстро зачитывать... В текстовый файл работает быстро... Вот обратно нет... Счет TXT-DBF : 3 сек на 9 - 12 сек Хотя функции те-же... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:42 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
Заметил в чем трабла... Эт при пустых мемо-полях... оно так себя ведет.. Если там были записи и запустить прогу... то отрабатывает за тех-же 3 сек. Как с этим мона бороться??? Плиз... Не уж ни-кто не сталкивался... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 14:53 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
Hi, IgorProgrammer! >Перегон из DBF в TXT А зачем условие IF my_file_fpt > 0 проверяется на каждой записи? Лучше уж поставить его перед SCAN, и внутри него - процедуру обработки ошибок. >Перегон из DBF (?? - FPT :) в TXT А может так попробовать: SET PRINTER TO text.txt SET PRINTER ON SCAN ?memopole ENDSCAN SET PRINTER off SET PRINTER TO Да и в первом случае тоже наверно можно. Только там всегда в начале файла вставляется символ CHR(13). Если только не сделать условие, чтобы первая запись писалась в файл не с помощью команды "?", а - с помощью "??". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 16:08 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
CrispyHi, IgorProgrammer! >Перегон из DBF в TXT А зачем условие IF my_file_fpt > 0 проверяется на каждой записи? Лучше уж поставить его перед SCAN, и внутри него - процедуру обработки ошибок. Сорри опечатка просто собирал куски... Эт проверка в начале стоит... Скорость вывода в текстовый файл меня устраивает... Меня не устраивает скорость вывода мемо-полей, из текстового файла в дбф... Функции те-же... Проблема в пустоте мемо-полей. repla при повторном запуске отрабатывает положенных этой функции 3 сек. А у меня всегда пустые мемо-поля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 16:53 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
Проблема в пустоте мемо-полей scan for !empty(my_memo) endscan где my_memo - есть имя мемополя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 17:15 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
leafПроблема в пустоте мемо-полей scan for !empty(my_memo) endscan где my_memo - есть имя мемополя] Эт круто... Скан какого мемо поля... Если эт текстовый файл... Пустые мемо-поля куда я хочу из текста записать... Меня мучает совесть что при 437000 записях... Код: plaintext 1. 2. 3. Отрабатывает за 5-6 сек. моя функция: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Просто обработка файла в скане за 1-2 сек. Куда делось еще 1-2 сек. Не хочется терять в скорости... Просто могут быть файлы и на 1 000 000 записей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 18:17 |
|
||
|
TXT-DBF с MEMO-полем
|
|||
|---|---|---|---|
|
#18+
Как вариант. Попробуй уйти от строкового разбора к групповым командам. Логика примерно следующая: Создается временная таблица из 2 полей: код записи, мемо-поле и индексом по коду записи Здесь код записи - равен коду записи из твоей основной таблицы. Нужен для того, чтобы можно было потом сделать RELATION Если версия FoxPro меньше 9, то это делается так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Здесь MyTab - это твоя таблица, куда в конце концов должен попасть результат, а TabID - это ключевое поле таблицы. Если такого нет, то в данном случае сойдет RECNO() Сканируем эту таблицу и записываем в ОДНО мемо поле неразобранные строки по 8192 символов. Код: plaintext 1. 2. 3. 4. Подключаем временную таблицу по RELATION как подчиненную к твоей основной Код: plaintext 1. 2. 3. ОДНОЙ командой делаем разбор содержимого одного memo-поля подчиненной таблицы и запись в основную Код: plaintext 1. 2. 3. 4. 5. 6. 7. Еще одной командой заменяем символы CHR(3) и CHR(4) Код: plaintext 1. 2. 3. 4. 5. Правда, не знаю, насколько это ускорит или замедлит работу. Идея в том, чтобы заменить одиночные команды разбора каждой строки на групповые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 19:30 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33077955&tid=1594202]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
179ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 433ms |

| 0 / 0 |
