regimshik
Заглянувший
Всего сообщений: 6
Дата регистрации: 21.08.2012
|
Создано:
21.08.2012 00:51:09
|
Добрый вечер!
Возникла такая проблема:
Задано следующее:
Set znach=Rastr.Tables("ots_znach")
В теле цикла прописано следующее:
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_znach").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",";"
|
|
|