![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
D3s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
Здравствуйте!
Вопрос такой. Как из StringGrid в котором скажем столбцов 4 а строк 1, сохранить данные в файл. Но в примерно таком виде: Название;ИД;шт;цена;Defender Byte;153-F00020;2;350 р Если прямо, то мне нужно сохранять из TStringGrid to CSV с разделителем «;», в сети примеры есть, вернее их вроде всего 1-2, но в файл сохранения производятся как есть и получается бардак. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
D3s |
|
||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
Этот пример из тех двух что коряво
записывают без разделителя ![]() Это сообщение отредактировал(а) D3s - 19.10.2010, 09:33 |
||||
|
|||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Не понял, а почему нельзя в цикле собрать столбцы в строчку, разделяя их чем нужно, а затем записать в файл?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
Grid.Rows[I] - это уже TStrings зачем еще куда то собирать (I`тая строка собранная в TStrings )? Это сообщение отредактировал(а) Frees - 19.10.2010, 09:41 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
D3s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
Frees
Все замечательно работает, кроме двух но ![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
это особенности CSV, если не использовать кавычки то не получится обратно разложить в том же виде как было(например если у тебя в ячейке уже написана ';'). если ты сделаешь все в 1 строку как отличишь где первая строка где вторая от кавычек лучше не избавляться (но можно), а вот так тебе все в 1 строку будет
Это сообщение отредактировал(а) Frees - 19.10.2010, 11:25 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
D3s |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
Не успел ![]()
Дело в том что выгрузка каталога из сайта, происходит именно по этой схеме. т.е. без переноса строки и как я понял ориентируется скрипт при выгрузке на количество столбцов. если к примеру их 4, то при загрузке скрипт будет в db каталога составлять следующим образом
Вот как то так вот Другими словами - это шаблон |
||||||||
|
|||||||||
D3s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
Frees
а это куда
? Может лучше сделать поочередно. Например читаем ячейку, записываем в TStrings ячейку + ; таким образом дойдя до конца строки, прыгаем, и снова читаем и записываем? Это сообщение отредактировал(а) D3s - 19.10.2010, 12:12 |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
можно и так но без " ты рано можешь получить баг, если в значении ячейки будет ; то у тебя все сместиться.. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
D3s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
![]() |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
во такие данные у тебя в гриде 8 колонок в колонке 4 вот такие данные "Defender;Byte"
___________________________________________________ Название|ИД |шт |цена |Defender;Byte| 153-F00020|2|350 р| сколько у тебя будет колонок если ты все сложишь просто через ; у тебя получится Название;ИД;шт;цена;Defender;<-это не разделитель а данные!>Byte;153-F00020;2;350 р сколько тут колонок? Это сообщение отредактировал(а) Frees - 19.10.2010, 12:55 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
D3s |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.9.2009 Репутация: нет Всего: нет |
Fress я тебя понял с самого начала но в прайсах, точки с запятой на моей практике еще не бывало, а вот кавычек чуть-ли не в каждом наименовании. Да и когда будет производится выгрузка на сайт программа будет сравнивать базы с прайсы с базами сайта и соответственно показывать несоответствия. В моей ситуации наверное проще обойтись простым без делимитера перечислением строк. Беда только очень долго не сидел в дельфях - пляж, рыбалка, пиво ![]() Так конец или начало ячейки обозначается пробелом? ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |