Страница 1 из 1

Многократный проход по таблице

Добавлено: 28 Июль 2010, 11:08
Evgeny2006
В чем особенность многократного прохода по таблице?
Дело в том, что я столкнулся с такой проблемой. Открываю файл. Устанавливаю SET по ключам.Выполняю с ним какие-то действия в цикле. Выхожу из цикла. Хочу снова перейти к первой записи, (SET остается таким же) тоже в цикле (другом), а указатель записи стоит на последней записи, т.е. той записи, на которой остановился в предыдущем цикле. Но мне то надо именно в таком порядке, но с первой записи.
Как избежать этого?

Re: Многократный проход по таблице

Добавлено: 28 Июль 2010, 12:57
George
Каждый раз перед проходом SET()

Re: Многократный проход по таблице

Добавлено: 28 Июль 2010, 15:28
morkovin
Hi, Evgeny2006!
ИМХО, полезно прочитать хелп по

SET(file)
SET(file,key)
SET(file,filepointer)
SET(key)
SET(key,key)
SET(key,keypointer)
SET(key,key,filepointer)

или с английским неважно? :)

Re: Многократный проход по таблице

Добавлено: 28 Июль 2010, 20:11
Evgeny2006

Re: Многократный проход по таблице

Новое сообщение morkovin » 28 Июль 2010, 15:28
Hi, Evgeny2006!
ИМХО, полезно прочитать хелп по

SET(file)
SET(file,key)
SET(file,filepointer)
SET(key)
SET(key,key)
SET(key,keypointer)
SET(key,key,filepointer)

или с английским неважно? :)
Да нет. С английским как раз в порядке. Документацию, которую вы рекомендуете почитать - давно прочел.
Я бы авторам этой документации - руки оторвал бы. Более неграмотного руководства я в жизни не видел.
Все по чуть-чуть разбросано по всем хелпам.

Re: Многократный проход по таблице

Добавлено: 28 Июль 2010, 20:13
Evgeny2006
Re: Многократный проход по таблице

Сообщение George » 28 Июль 2010, 12:57
Каждый раз перед проходом SET()
Большое спасибо за совет. А то в этих хелпах ничего найти невозможно.
Еще раз огромное спасибо.

Re: Многократный проход по таблице

Добавлено: 28 Июль 2010, 21:24
morkovin
Hi, Evgeny2006!
Такое ощущение, что Вы избегаете использовать шаблоны (templates) для генерации кода и все пытаетесь написать вручную. ИМХО, это неправильно для начинающего клариониста. Здесь почти на каждый чих есть шаблон-основа. В частности, для многопроходной обработки я бы не задумываясь использовал отдельные процедуры для каждого прохода на базе Process-шаблона. Автоматом бы получил и обработку ошибок, и Progress-индикатор,и фильтры и т.п. А конкретные действия по измененю данных вставляются в embed-точку Activity for Every Record.

Re: Многократный проход по таблице

Добавлено: 29 Июль 2010, 13:23
Evgeny2006
Re: Многократный проход по таблице

Новое сообщение morkovin » 28 Июль 2010, 21:24
Hi, Evgeny2006!
Такое ощущение, что Вы избегаете использовать шаблоны (templates) для генерации кода и все пытаетесь написать вручную. ИМХО, это неправильно для начинающего клариониста. Здесь почти на каждый чих есть шаблон-основа. В частности, для многопроходной обработки я бы не задумываясь использовал отдельные процедуры для каждого прохода на базе Process-шаблона. Автоматом бы получил и обработку ошибок, и Progress-индикатор,и фильтры и т.п. А конкретные действия по измененю данных вставляются в embed-точку Activity for Every Record.
Нет, я не избегаю шаблонов. Просто то, что я делаю вручную - довесок к сгенерированной программе.
Ну, а что касается новичка, то новичок-то я только в Clarion, поскольку за плечами более 15 лет разработок программ на разных языках, правда в основном инженерных.

Re: Многократный проход по таблице

Добавлено: 29 Июль 2010, 14:55
seawolf
Вообще перед любым Set надо "чистить" Record.
типа если читаем файл сверху вниз
Clear(Perf:Record)
Set(Pref:Key,Pref:Key)
Loop
Next(File)
If Errorcode() then break.

.
Если читаем наоборот снизу вверх

Clear(Perf:Record,1)
Set(Pref:Key,Pref:Key)
Loop
Previous(File)
If Errorcode() then break.

.

Так всегда писали руками такой цикл еще с DOS версий.

Re: Многократный проход по таблице

Добавлено: 30 Июль 2010, 22:42
Evgeny2006

Re: Многократный проход по таблице

Новое сообщение seawolf » 29 Июль 2010, 14:55
Вообще перед любым Set надо "чистить" Record.
типа если читаем файл сверху вниз
Clear(Perf:Record)
Set(Pref:Key,Pref:Key)
Loop
Next(File)
If Errorcode() then break.
Спасибо большое. Я с Clarion в ДОСе не работал. Чувствую, (я работал в Foxpro) что чего-то не хватает, но в этих хелпах найти не возможно. Перерыл Set раз десять и все без толку. Спасибо, что мир не без добрых людей.
Еще раз большое спасибо за помощь.