COPY TO неверно экспортирует в csv | |
---|---|
DSergeevich Автор Сообщений: 4 Дата регистрации: 30.11.2017 |
Приветствую всех.
Есть dbf, делаю
"20210000094","МУП "Центр проектирования, градостроительства"","2211380000000014","0300006846","За оказанные услуги согл.реестра №237 от 27.10.2017г. ст.111070","111070" Обращаю внимание на поле "МУП "Центр проектирования, градостроительства"" это некорректно. Кавычки должны экранироваться и должно получиться так: "МУП ""Центр проектирования, градостроительства""" Как решить эту проблему? прошу не пинать, ранее с фоксом дело не имел., гугл обшарил, но решения не нашел. СПАСИБО! |
Re: COPY TO неверно экспортирует в csv | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
А кто сказал, что так корректно? |
Re: COPY TO неверно экспортирует в csv | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
|
Re: COPY TO неверно экспортирует в csv | |
---|---|
DSergeevich Автор Сообщений: 4 Дата регистрации: 30.11.2017 |
Ну оно должно экранироваться. Даже эксель откроет некорректно, а если кавычки за экранировать то все ок. Или в экселе попробуйте сделать экспорт в csv, он кавычки экранирует.
|
Re: COPY TO неверно экспортирует в csv | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Использовать другой разделитель - не встречающийся в данных (скажем тильду, или решётку или "крышку" ^). Либо предварительно готовить данные, удваивая кавычки, или заменяя их - скажем двойную на одинарную (если не требуется соблюдать "буквальное" содержимое - человеку зачастую по барабану какая именно кавычка применяется в тексте). Либо выводить в csv не через COPY TO - например FOPEN/FPUTS/FCLOSE, или SET ALTERNATE и команды вывода текста (прогоняя поля через функцию экранирующую кавычки и "заворачивающую" их как положено)... Масса самых разных вариантов.
------------------ WBR, Igor |
Re: COPY TO неверно экспортирует в csv | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Эта команда появилась в фоксе задолго до того как был принят RFC (стандарт) по которому кавычки должны были удваиваться в csv файле - во времена разброда и шатания, когда под csv понималось всё что угодно каких угодно "видов" - включая разделение "полей" при помощи ; - как оно есть даже в современном экселе... Поэтому в его реализации это не предусмотрено. Но формировать текстовый файл можно кучей самых разных способов НЕ используя COPY TO - потому не вижу проблемы закодировать так как это нужно ------------------ WBR, Igor |
Re: COPY TO неверно экспортирует в csv | |
---|---|
DSergeevich Автор Сообщений: 4 Дата регистрации: 30.11.2017 |
Ну это все понятно что можно, но т.к я в фоксе нуб, то прошу поделиться чем то готовым, если таковое имеется.
|
Re: COPY TO неверно экспортирует в csv | |
---|---|
Chemberzhy Сообщений: 13142 Откуда: Измаил Дата регистрации: 28.04.2009 |
Например, так:
|
Re: COPY TO неверно экспортирует в csv | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
------------------ Без коментариев.. |
Re: COPY TO неверно экспортирует в csv | |
---|---|
DSergeevich Автор Сообщений: 4 Дата регистрации: 30.11.2017 |
Всем огромное спасибо! Буду пробовать.
|
Re: COPY TO неверно экспортирует в csv | |
---|---|
Каратаев Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
|
Re: COPY TO неверно экспортирует в csv | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Танковая колонна таких односимвольных STRTRAN() вполне заменяется одним грузовичком в виде CHRTRAN() |
Re: COPY TO неверно экспортирует в csv | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
а regexp уже отменили? видима точно отменили
------------------ Мойте ноги, моя ноги вы моете и руки |
Re: COPY TO неверно экспортирует в csv | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Не отменили, а не успели ввести. |
Re: COPY TO неверно экспортирует в csv | |
---|---|
Каратаев Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
Приколисты, блин... ;)
Ну вот мне так было удобнее по той простой причине, что несколько раз наборы символов менялись и не факт, что не поменяются ещё. Или не добавятся... В таком виде, как сейчас мне просто нагляднее и быстрее правки внести. Только и всего. Кому-то удобнее в одной строке порядки блоков разбирать, а мне вот так. Да и топикстартеру, судя по всему, легче вот этот код понять, чем вникнуть в тот же regexp... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
Re: COPY TO неверно экспортирует в csv | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
Удобство сопровождения - это, конечно, важно.
Но кто знает, насколько многомегабайтные строки обрабатываются этой функцией, сколько раз и в каком режиме? Скорость обработки может быть не менее важной. |
Re: COPY TO неверно экспортирует в csv | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
1) strtran заметно медленнее chrtran заменяющего символы 1-на-1
2) для "наглядности" можно было друг под другом параметры прописать, или вообще в переменных или константах (тоже выравненных друг под другом) их описать:
P.S. Наверное для целей "очистки ввода" и нужна такая массивная конструкция, а для целей просто заменить двойные кавычки на, к примеру, одинарные, так много букв не требуется ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 07.12.17 22:16 |
Re: COPY TO неверно экспортирует в csv | |
---|---|
Каратаев Сообщений: 3977 Откуда: Алматы Дата регистрации: 04.12.2001 |
Ну тут не поспорю... Исправлю, конечно, чего уж... Спасибо, Игорь, воспользуюсь этим советом. Так действительно лучше. ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. |
© 2000-2024 Fox Club  |