На главную страницу
Русский English
 


Поддержка
Форум
Техподдержка
Закрытый разделПерсональная

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 67418385
9735
Hosts 3608942
1979
Visitors 53570928
9398

113


Главная / Поддержка / Форумы / Макро

Форум «Макро»

Версия для печати Версия для печати

Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: «запись в CSV » в форуме: Макро   Просмотров: 8147
 
regimshik
Заглянувший
 
Всего сообщений: 6
Дата регистрации: 21.08.2012
Создано: 21.08.2012 00:51:09
 
 
Добрый вечер!
Возникла такая проблема:
Задано следующее:
Set znach=Rastr.Tables("ots_z­nach")
В теле цикла прописано следующее:
znach.WriteCSV 0,file,"name",";"

Т.е. на каждой итерации должно записываться имя из таблицы КВ в файл. Но на деле записывается имя+имя предыдущей строки: на i-ой итерации получаем i строк с именами. Скажите, пожалуйста, как решить такой вопрос?
 
Профиль
Наверх
Владимир Неуймин
Администратор
 
Всего сообщений: 268
Дата регистрации: 13.03.2007
Создано: 21.08.2012 11:31:33
 
 
Добрый день !
Вопрос не очень понятен. Чуть подробнее = как выглядит файл после итераций, и в чем он некоректен.
 
Профиль
Наверх
regimshik
Заглянувший
 
Всего сообщений: 6
Дата регистрации: 21.08.2012
Создано: 21.08.2012 11:49:47
 
 
После итераций файл выглядит как:
имя1
(результаты расчета)
имя1
имя2
(результаты расчета)
имя1
имя2
имя3
(результаты расчета)
а нужно, чтобы было:
имя1
(результаты расчета)
имя2
(результаты расчета)
имя3
(результаты расчета)
Цикл организован как перебор строк таблицы ветвей:
j=tvetv.FindNextSel(-1)
while j<>-1
....
j=tvetv.FindNextSel(j)
wend
 
Профиль
Наверх
Вадим
Гость
 
Создано: 21.08.2012 11:51:28
 
 
вроде writecsv сразу всю таблицу выводит, не надо в цикле выводить, достаточно один раз написать или в самом конце когда готова таблица значений
 
Наверх
regimshik
Заглянувший
 
Всего сообщений: 6
Дата регистрации: 21.08.2012
Создано: 21.08.2012 11:53:27
 
 
Мне не нужна вся таблица. Нужны имена из таблицы КВ, а результаты расчета записываю из таблицы ветвей.
 
Профиль
Наверх
Вадим
Гость
 
Создано: 21.08.2012 11:53:48
 
 
тем более что у вас файл не затирается при каждом вызове writecsv, а дописывается.. то есть на каждой итеррации вы получаете всю таблицу + 1 новая строчка от иттерации
 
Наверх
Вадим
Гость
 
Создано: 21.08.2012 11:56:17
 
 
ну так просто обратитесь к столбцу напрямую
Set znach=Rastr.Tables("ots_z­nach").Cols("name")
и через zn(row), где row от 0 до конца итерраций увеличивайте на 1, получайте имя

writecsv для других целей
 
Наверх
regimshik
Заглянувший
 
Всего сообщений: 6
Дата регистрации: 21.08.2012
Создано: 21.08.2012 11:57:17
 
 
но из таблицы ветвей я получаю результаты только с данной итерации.
 
Профиль
Наверх
Вадим
Гость
 
Создано: 21.08.2012 12:01:08
 
 
можно сделать так как написал выше
Set znach=Rastr.Tables("ots_z­?nach").Cols("name")
заводим переменную, которая будет на 1 увеличиваться - row
перед циклом row=0
в цикле берем значение znach.zn(row) - тут будет имя
row=row + 1
 
Наверх
Вадим
Гость
 
Создано: 21.08.2012 12:03:37
 
 
приведите кусок вашей программы
вы делаете перебор в таблице ветвей, на этом этапе у вас не должно изменится значение имени.. поэтому уж точно не в этом цикле надо брать имя - оно не изменяется
 
Наверх
regimshik
Заглянувший
 
Всего сообщений: 6
Дата регистрации: 21.08.2012
Создано: 21.08.2012 12:32:27
 
 
Спасибо за помощь!
нужно было имя выводить из таблицы ветвей, поскольку цикл в этой таблице.
вот так работает как надо:
tvetv.WriteCSV 0,file,"name",";"
 
Профиль
Наверх



Читают тему
гостей: 1, пользователей: 0, из них скрытых: 0


Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация







Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019