Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с написанием программки / 2 сообщений из 2, страница 1 из 1
15.05.2006, 09:35
    #33726085
Igrok4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием программки
Есть таблица с полем Numeric, заполненная примерно так:
1002
1003
1004
1007
1008
1010
1011
1012
1015

Необходимо значения полей поместить в переменную, причём так:
s1 = 1002-1004, 1007, 1008, 1010-1012, 1015
Т.е. значения идущие друг за другом (которых больше 2), пишуться через "-", остальные через ",".
Спасибо!
...
Рейтинг: 0 / 0
15.05.2006, 10:50
    #33726298
Кузнецов Игорь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с написанием программки
Как вариант. Может неоптимально, но все же. Маленкое замечание:
Ты просил
Igrok4Т.е. значения идущие друг за другом (которых больше 2), пишуться через "-", остальные через ",".
А у меня получилось "идущие друг за другом, которых больше 1."
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
USE MyTable IN  0  ALIAS MyTable SHARED
cItogLine=""
nPrevNum= 0 
FlagDefis=.F.
FOR i= 1  TO RECCOUNT("MyTable")
  GO RECORD i IN MyTable
  IF nPrevNum= 0 
    cItogLine=LTRIM(STR(MyTable.MyField))
    nPrevNum=MyTable.MyField
  ENDIF
  DO CASE
    CASE MyTable.MyField-nPrevNum= 1 
      IF FlagDefis=.F.
        cItogLine=cItogLine+"-"
        FlagDefis=.T.
      ENDIF
    CASE MyTable.MyField-nPrevNum> 1 
       IF FlagDefis=.T.
       	cItogLine=cItogLine+LTRIM(STR(nPrevNum))+", "+LTRIM(STR(MyTable.MyField))
       ELSE
       	cItogLine=cItogLine+", "+LTRIM(STR(MyTable.MyField))
       ENDIF
       FlagDefis=.F.
  ENDCASE
  nPrevNum=MyTable.MyField
ENDFOR
USE IN MyTable
? cItogLine
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите с написанием программки / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]