Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Экспорт в форматированный текст   Найти похожие ветки 

 
Alex_V ©   (2005-01-13 20:01) [0]

Есть задача, вывести результаты запроса в текстовый файл определенной структуры т.е. практически таблица, с полями и выравниванием в них, только в текстовом варианте. Понимаю что делается через Датасет, но как созать его и вывести в файл немного не догоняю, подтолкните пожалуйста. За малым дело встало, вся прога готова а экспорта нет...


 
Desdechado ©   (2005-01-13 20:34) [1]

выравнивание подумай сам, а запись в файл - элементарно.
открыть через AssignFile, OpenFile
потом в цикле по записям в датасете WriteLn с указанием нужных полей
закрыть файл CloseFile


 
Alex_V ©   (2005-01-14 20:57) [2]

Это я и сам мог сделать, нет, это не то, должен быть изяшный  вариант, это совсем не то...Кто еще что скажет???


 
Desdechado ©   (2005-01-14 21:12) [3]

а чем тебе не изящный?
ты ж критерии изящества не указал...

не нравится так, экспортируй в dbf или excel или еще
в чем проблема-то?


 
Alex_V ©   (2005-01-14 21:38) [4]

ДА в том что нет там форматирования. Выборка производится из dbf файлов, после чего необходимо чтоб определенные поля (точнее их значения) били записаны в определенное место и с надлежащим форматом, то есть столбцы данных с выравниванием, это обусловлено тем, что далее эти данные будут в автомате загружаться а определенную прогу. Формат примерно следующий:
123        ффф         123.34
12312312   ааа        1234.45

Первый столбец - длина определена, например в 20 символов в нем может стоять 5 но другое поле должно начинаться с 21 символа в строке и не смещаться, и в полях выравнивание....Вот, собственно. Если ест толковые идей - Велкам! :)


 
Anatoly Podgoretsky ©   (2005-01-14 21:40) [5]

Alex_V ©   (14.01.05 21:38) [4]
WriteLn


 
Anatoly Podgoretsky ©   (2005-01-14 21:41) [6]

Если этого недостаточно то в дополнение format
Статьи по работе с текстовыми файлами есть на моем сайте и на Королевстве Дельфи, в Лицее.


 
Alex_S   (2005-01-15 00:00) [7]

Тезка, надо просто вспомнить обычный Паскаль.
writeln(f,a:5:0,b:6:2,s:20);
где f: TextFile; a,b:real; s:string;
Просто счас книжки пишут сразу о Дэльфи, а элементарных вещей старого Паскаля почти нет. Кто раньше на Паскале работал, тот бы даже не думал о такой проблеме.


 
Alex_V ©   (2005-01-15 20:14) [8]

Дык работал я с Пасом... Просто не хочется по всем записям скакать, думал есть проще вариант, типа использовать Тестовый датасет и настроеный на текст алиас и в него как в обычную таблицу например BatchMove сделать...Ну что нибудь в этом роде. Мне кажется это не самый оптимальный метод.


 
Alex_V ©   (2005-01-15 20:14) [9]

Удалено модератором
Примечание: дубль


 
Anatoly Podgoretsky ©   (2005-01-15 20:22) [10]

Alex_V ©   (15.01.05 20:14) [8]
Вполне нормально, если у тебя есть такой датасет. Если нет то сам создай.


 
sniknik ©   (2005-01-15 20:38) [11]

Alex_V ©   (15.01.05 20:14) [8]
естественно неоптимально... знаеш как будет тормозить "Тестовый датасет" по сравнению с нормальным DB-шным? yyyyyy..... ;о)))


 
Fay ©   (2005-01-16 04:20) [12]

sniknik ©   (15.01.05 20:38) [11]
> знаеш как будет тормозить "Тестовый датасет" по
> сравнению с нормальным DB-шным?

С какого перепугу он будет тормозить? Зависит от движка.


 
sniknik ©   (2005-01-16 09:44) [13]

> С какого перепугу он будет тормозить? Зависит от движка.
так он же его сам собрался писать!!! и причем (смутные догадки) на основе стринггрида.
догадки основаны на том что нужен "прямой" доступ к записям, ну как стринггриде по индексу, это значит как минимум надо выкачивать весь рекордсет и преобразовывать или строить свой который это будет позволять. а пока рассуждения ([4]) направлены на строковые представления.

не зная почти ничего об аналогах/о том как работают базы, компаненты и т.д. обо всем связаном... думаеш у него он будет "летать"?


 
Fay ©   (2005-01-16 12:58) [14]

sniknik ©   (16.01.05 9:44) [13]
Ну разве что...


 
Alex_V ©   (2005-01-17 18:55) [15]

Sniknik: По моему ты что то путаешь парень, вл-первых я ничего  писать не собирался, а имел ввиду именно Обычный Датасет а ьексьовым я его назвал просто потому что имел ввиду что он настроен на базу текстового формата... И ненадо думать что все тут такие уж тупые. Я вижу только то что ты демагогию развел а совета нет , так может просто нечего посоветовать, тогда я бы попросил просто молчать и всего лишь. Ведь это не много. И я так и не понял откуда и причем здесь Грид, про него не было и слова...


 
sniknik ©   (2005-01-17 20:55) [16]

всего лиш предположение, причем шуточное (смайликов в упор не замечаем?)
а потом обьяснил (на вопрос!) с чего возникло...

> так может просто нечего посоветовать, тогда я бы попросил просто молчать и всего лишь.
всерьез ждеш совета? тебе же его уже дали. чтож могу вдобавок посоветовать
совет №1 открой файл (текстовый) как таблицу и делай bachmove (так вроде оно там в BDE называется) в него.
совет №2 смени компоненты/движок и делай запрос на выгрузку в текст (некоторые jet к примеру, это позволяют)
совет №3 прислушивайся к советам если спрашиваеш их к [5] например.


 
sniknik ©   (2005-01-17 20:57) [17]

сорри, совет №1 можещ пропустить... тебе там чтото кажется.


 
Alex_V ©   (2005-01-20 20:01) [18]

Ладно, проехали, сделал я все... Если кого обидел - извиняюсь, в горячке, на работе шеф напрягал а у меня 0...Теперь все ок! Спасибо за советы. :)



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.063 c
3-1106244219
Weare
2005-01-20 21:03
2005.02.20
Memo и Ini-файл


1-1107803155
GGGG123123
2005-02-07 22:05
2005.02.20
Как узнать был ли копирован файл?


1-1107489800
Артем К.
2005-02-04 07:03
2005.02.20
Как отловить в Design-тайме сообщение типа CM_MOUSELEAVE?


1-1107724539
Poochacha
2005-02-07 00:15
2005.02.20
Single to String


4-1104840564
Xattab
2005-01-04 15:09
2005.02.20
Использование функции LockFileEx