Форум » LetoDB, HbNetio. » LetoDB - csv to dbf ? » Ответить

LetoDB - csv to dbf ?

Andrey: Всем привет. На сервере с LetoDB есть файл android.csv куда записи пишутся(добавляются) постоянно с телефона в формате CSV. Как лучше сделать конвертацию в dbf-файл и кто должен эту операцию делать: сервер или локальные станции ? Новые записи появляющиеся в android.csv нужно показывать на локальных станциях. Кто что может посоветовать ?

Ответов - 13

PSP: Andrey пишет: На сервере с LetoDB есть файл android.csv Расшифруй это.

Dima: PSP пишет: Расшифруй это. +1

Andrey: PSP пишет: Расшифруй это. Файл текстовый, формата CSV в который пишутся данные с телефонов на андроиде (ну не знаю как прикрутить LETO к андроиду, не получилось с ходу, позже этим займусь). Файл лежит в папке, куда есть доступ LetoDB. Хочу этот файл после каждого изменения конвертировать в DBF и новые записи показывать на локальных станциях (по таймеру на форме). Как лучше сделать конвертацию в dbf-файл, т.е. кто должен эту операцию делать: сервер или локальная станции ? По идее, можно на сервере сделать отдельную функцию, которая будет проводить эту конвертацию. Или каждая локальная станция будет блокировать файл через семафор и делать конвертацию. Базы пока маленькие, но если разрастутся, то что тогда будет ? Вот и спрашиваю, какой метод лучше. Причем это будет не одна база, а несколько, ну пока с 15 баз.


Andrey: А можно в Tsbrowse открыть файл формата CSV через LetoDB ? В терминалке - обычным бровсом можно было такое делать. Помню примеры были ещё на Клипере.

Dima: Andrey пишет: А можно в Tsbrowse открыть файл формата CSV через LetoDB ? А если в массив загнать ?

Andrey: Dima пишет: А если в массив загнать ? Идея интересная. Снимается множество проблем... Для просмотра пойдёт. Только вот если юзера чуток править будут (допустим логическое поле - Просмотрел: T/F) то как тогда на сервер LetoDb возвращать изменённый массив и делать перезапись измененных данных ? И каков максимальный размер массива который можно передать с сервера ?

PSP: Мне кажется, логичнее не конвертировать весь файл после каждого изменения, а следить за добавлением строк в csv и переносить в dbf строками после добавления. Этим же снимается вопрос о "Только вот если юзера чуток править будут"

Andrey: PSP пишет: логичнее не конвертировать весь файл после каждого изменения Спасибо !

Andrey: Нашёл в доке функцию Leto_FileSize( cFileName ). А есть функции которые бы возвращали дату и время последнего изменения файла ? Хотя на крайний случай сойдёт и Leto_Directory().

PSP: Andrey пишет: А есть функции которые бы возвращали дату и время последнего изменения файла ? Это ничего не даст. Нужно помимо даты/времени модификации знать позицию в текстовом файле, с которой начинать чтение.

Andrey: PSP пишет: Нужно помимо даты/времени модификации знать позицию в текстовом файле, с которой начинать чтение. Элементарно. Кол-во записей в базе минус кол-во элементов (длина массива) в csv-файле.

PSP: Andrey пишет: кол-во элементов (длина массива) в csv-файле Это придется каждый раз перезаполнять массив, читая весь файл сначала. Если он небольшой, - нет проблем.

Andrey: PSP пишет: Если он небольшой, - нет проблем. Пока небольшой... Потом посмотрим... Пробовал на 4 тыс.записей - размер файла 300 Кбайт. Я в Лето пробовал, до 1.5 Мб - нормально считывает. А какой предел размера считывания - я не знаю...



полная версия страницы