TSdfDataSet
Модератор: Модераторы
TSdfDataSet
Кто-нибудь работал с этим компонентом?
У меня такая проблема. Есть текстовый файл с данными, где поля разделены символом табуляции. Соответственно для просмотра и редактирования его использую TSdfDataSet + DBGrid. Однако если в строке записи идут несколько пустых полей, т.е. подряд идут несколько штук табуляций, то компонент их благополучно пропускает, пустое поле не выводит и поэтому получается, что в одном столбце идут несколько разных данных, которые, в оригинале, расположены каждый в своём столбце.
Кто-нибудь сталкивался с таким? Может быть можно какое-то свойство задать, чтобы он пустые поля тоже за поля считал?
У меня такая проблема. Есть текстовый файл с данными, где поля разделены символом табуляции. Соответственно для просмотра и редактирования его использую TSdfDataSet + DBGrid. Однако если в строке записи идут несколько пустых полей, т.е. подряд идут несколько штук табуляций, то компонент их благополучно пропускает, пустое поле не выводит и поэтому получается, что в одном столбце идут несколько разных данных, которые, в оригинале, расположены каждый в своём столбце.
Кто-нибудь сталкивался с таким? Может быть можно какое-то свойство задать, чтобы он пустые поля тоже за поля считал?
Да, есть у него такой глюк, я вылечит не смог, чтоб все работало я в текстовом файле Таб заменял на ; , тогда все работало
На самом деле данный компонент не соответствует стандарту csv
Используйте
http://wiki.freepascal.org/CsvDocument
http://wiki.freepascal.org/JCSV_(Jans_CSV_Components)
На самом деле данный компонент не соответствует стандарту csv
Используйте
http://wiki.freepascal.org/CsvDocument
http://wiki.freepascal.org/JCSV_(Jans_CSV_Components)
Спасибо, посмотрю.
не совсем верно. Он соответствует стандарту. А вот иногда файлы нет.На самом деле данный компонент не соответствует стандарту csv
CsvDocument и TSdfDataSet парсят идентично (согласно стандартов). Только скорость отличается. TSdfDataSet грузит все и сразу, а CsvDocument воспринимает файл как ячейки. Поэтому скорость загрузки в CsvDocument меньше. Зато можно красивенький доступ организовать (частичная загрузка, выборка отдельного диапазона и т.д.). CsvDocument сильно восприимчив к не стандартным файлам .
В TSdfDataSet есть пару существенных "проблем". Кол-во записей не всегда верно. И "поход" к конкретной записи (Recno, кажись) затруднителен. т.е. необходим цикл While...
Jans_CSV_Components не котируется по уровню к предыдущим...
а в чем проблема добавить его в парсер....где поля разделены символом табуляции
pupsik писал(а):а в чем проблема добавить его в парсер....
Дружище, у меня создалось впечатление, что первый пост Вы прочитали, но заметили только отдельные слова.
Ха... не нид холивара на тему что я прочитал, что нет.
Ответ, к сожалению (счастию) извесен... Править под свои нужды. Я не понимаю: в чем отличие символа ТАБ от других знаков? В чем сложность подправить логику парсера?
Повторюсь: компонент соответствует стандартам (хотя, стандарт - понятие растяжимоееее).
п.с.
мне вот интересно: в чем отличие сивола ТАБ от других символов (окромя разделителя строк в ОС)? И почему не подправить парсер компонента. Я более чем уверен что аналогичные компоненты будут себя вести подобным, как вами описано, образом...
интересно:
Ссори за сарказм....
Ответ, к сожалению (счастию) извесен... Править под свои нужды. Я не понимаю: в чем отличие символа ТАБ от других знаков? В чем сложность подправить логику парсера?
Повторюсь: компонент соответствует стандартам (хотя, стандарт - понятие растяжимоееее).
п.с.
мне вот интересно: в чем отличие сивола ТАБ от других символов (окромя разделителя строк в ОС)? И почему не подправить парсер компонента. Я более чем уверен что аналогичные компоненты будут себя вести подобным, как вами описано, образом...
интересно:
а как вы его лечили? Ведь этоя вылечит не смог
мне подсказывает (применялось нечто подобное replaceall в строке) что лечение поверхносное было. Оно ведь заменялось как-то, а вот компонент не вылечился. По идее оно и заменяться не должно, хотя, может, добрые (злые) силы подмогли...Таб заменял на ;
Ссори за сарказм....
Судя по всему некоторые программы воспринимают Таб, как очередной пробел. Поэтому когда встречаются 2 таба оно думает, что это пространство разделитель
Также есть различие в восприятии двойных кавычек, гдето они считаются ограничителями строк, гдето частью строки
Указанный мною компонент соответствует стандартам и ведет себя правильно
Также есть различие в восприятии двойных кавычек, гдето они считаются ограничителями строк, гдето частью строки
Указанный мною компонент соответствует стандартам и ведет себя правильно
Решил проверить данный вариант, созданием похожей проблемы.
ошибка в самом парсере. В момент добавления значения разрабы перемудрили (не домудрили). Необходимо сто грамм для барабана
. Проблема решима путем перелопачивания сорца (на что я намекал ранее
). (В простейшем понимании огромный недочет, ведущий на ппц. Т.е. крики похожие на АААА Лазарь глючит
)
п.с.
неужели ТАБ и Пробел считаются де факто в стандарте свс-а ?
ошибка в самом парсере. В момент добавления значения разрабы перемудрили (не домудрили). Необходимо сто грамм для барабана
это как раз гре.. стандарт ... У себя я его вымарал полностью. Там отдельную функцию для данной каки выделили. Кстати: CsvDocument падает при подобных "прелестях".различие в восприятии двойных кавычек
п.с.
неужели ТАБ и Пробел считаются де факто в стандарте свс-а ?
Если заглянуть в каталог SDF, где лежат исходники этого компонента, то там один из тестовых файлов как раз содержит табуляцию в виде разделителя. Т.е. разработчики на табуляции и тестировали свой компонент. Недотестировали...
Добавлено спустя 1 минуту 49 секунд:
Про пробел - не знаю, а вот ТАВ - как раз очень популярный разделитель, наряду с точкой с запятой. Особенно там, где текстовые данные не обрамлены кавычками.
Добавлено спустя 1 минуту 49 секунд:
pupsik писал(а):неужели ТАБ и Пробел считаются де факто в стандарте свс-а ?
Про пробел - не знаю, а вот ТАВ - как раз очень популярный разделитель, наряду с точкой с запятой. Особенно там, где текстовые данные не обрамлены кавычками.
На самом деле все веселее
Кавычки почвляются в тех записях, где надо экранировать пробел или нечитаемые символы типа прерноса. То есть полноценныйт csv исключает ошибки при распознавании файла
Кавычки почвляются в тех записях, где надо экранировать пробел или нечитаемые символы типа прерноса. То есть полноценныйт csv исключает ошибки при распознавании файла
где надо экранировать пробел или нечитаемые символы типа прерноса
т.е., не врубилсо
