:: Visual Foxpro, Foxpro for DOS
Чары ёпт
Nick
Автор

Сообщений: 140
Откуда: Lvov
Дата регистрации: 11.01.2001
Добрый день
Давно не писал ...начил тупить
Прошу помощи зала
Имеется СИМВОЛЬНЫЙ МАССИВ от
AAAAAA до ZZZZZZ (Только латинские большие буквы)
Выборка идет с шагом 7
Типа Первое значение AAAAAA ,затем AAAAAH-AAAAAO-AAAAAV-AAAABC-AAAABJ-AAAABQ-AAAABX и так до ZZZZZZ
Пните направление как делать .СПАСИБО!
Ratings: 0 negative/0 positive
Re: Чары ёпт
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Nick
Добрый день
Давно не писал ...начил тупить
Прошу помощи зала
Имеется СИМВОЛЬНЫЙ МАССИВ от
AAAAAA до ZZZZZZ (Только латинские большие буквы)
Выборка идет с шагом 7
Типа Первое значение AAAAAA ,затем AAAAAH-AAAAAO-AAAAAV-AAAABC-AAAABJ-AAAABQ-AAAABX и так до ZZZZZZ
Пните направление как делать .СПАСИБО!

Через STUFF в цикле естественно.
Типа "DO WHILE .T.".
А там проверяешь слово по FOR по очереди с первой до последней буквы на равенство Z.
Если последняя буква не равна, увеличиваешь ее код (по ходу через подстановки ASC-CHR).
Если стала равна Z - уменьшаешь число сканирований через FOR.
Если первая стала равна - EXIT.
Ну само собой все это по ходу подгружаешь куда-то - в переменную скажем через запятую или в массив - как больше нравится.

В принципе несколько строчек кода по идее. [sm128]


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Чары ёпт
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Имеется СИМВОЛЬНЫЙ МАССИВ от AAAAAA до ZZZZZZ (Только латинские большие буквы). Выборка идет с шагом 7 ... как делать

Сделать что? Наполнить массив всеми возможными значениями? (ну, не всеми а через 7) = (26^6) / 7 вариантов

() Для примера саморазвлечения - схема наполнения массива значениями 26-ичными числами, если разрядности INT-числа хватит (2^31)
k = 0 && счетчик в выходном массиве
FOR i=1 TO (26^6) STEP 7
j = i-1 && это число изобразим в 26-ичном виде
s = "" && очередное 6-символьное значение
x = j % 26 && 0..25
s = CHR(ASC("A") + x) + s && приписываем к S символ слева
j = INT((j - x)/26)
...
еще 5 раз также
...
k = k + 1
DIMEN MASS[k]
MASS[k] = s
ENDFOR
Ratings: 0 negative/0 positive
Re: Чары ёпт
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
CREATE CURSOR tmp1 (f1 c(6))
FOR i1 = ASC('A') TO ASC('U')
WAIT WINDOW CHR(i1) nowait
FOR i2 = ASC('A') TO ASC('Z')
FOR i3 = ASC('A') TO ASC('Z')
FOR i4 = ASC('A') TO ASC('Z')
FOR i5 = ASC('A') TO ASC('Z')
FOR i6 = ASC('A') TO ASC('Z')
INSERT INTO tmp1 VALUES (CHR(i1)+CHR(i2)+CHR(i3)+CHR(i4)+CHR(i5)+CHR(i6))
NEXT
NEXT
NEXT
NEXT
NEXT
NEXT
WAIT clear
CREATE CURSOR tmp2 (f1 c(6))
FOR i1 = ASC('V') TO ASC('Z')
WAIT WINDOW CHR(i1) nowait
FOR i2 = ASC('A') TO ASC('Z')
FOR i3 = ASC('A') TO ASC('Z')
FOR i4 = ASC('A') TO ASC('Z')
FOR i5 = ASC('A') TO ASC('Z')
FOR i6 = ASC('A') TO ASC('Z')
INSERT INTO tmp2 VALUES (CHR(i1)+CHR(i2)+CHR(i3)+CHR(i4)+CHR(i5)+CHR(i6))
NEXT
NEXT
NEXT
NEXT
NEXT
NEXT
WAIT clear
SELECT f1 FROM tmp1 WHERE RECNO()%7=1 ;
UNION ;
SELECT f1 from tmp2 WHERE RECNO()%7=1 INTO CURSOR tmp3
BROWSE nowait
Ratings: 0 negative/0 positive
Re: Чары ёпт
akvvohinc

Сообщений: 4219
Откуда: Москва
Дата регистрации: 11.11.2008
Nick
Имеется СИМВОЛЬНЫЙ МАССИВ от AAAAAA до ZZZZZZ (Только латинские большие буквы)
Выборка идет с шагом 7
Именно.

Если вчитаться в задание и поверить автору, то массив (курсор) всех комбинаций у него уже есть (имеется!), причем, упорядоченный, а ему требуется просто выбрать (выборка идет!) из него каждый 7-й элемент, начиная с первого.

И тогда для курсора (если б его можно было создать такого размера) достаточно простого
SELECT f1 FROM tmp1 WHERE RECNO()%7=1

Но можно аналогично создать курсор и на пустом месте:
CREATE CURSOR tmp0 (f1 C(6))
no = 0
FOR m.i1=ASC('A') TO ASC('Z')
WAIT CHR(i1) WINDOW NOWAIT
FOR i2=ASC('A') TO ASC('Z')
FOR i3=ASC('A') TO ASC('Z')
FOR i4=ASC('A') TO ASC('Z')
FOR i5=ASC('A') TO ASC('Z')
FOR i6=ASC('A') TO ASC('Z')
no = no+1
IF no%7=1
INSERT INTO tmp0 VALUES(CHR(i1)+CHR(i2)+CHR(i3)+CHR(i4)+CHR(i5)+CHR(i6))
ENDIF
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR

Для массива то же - и выборка (в цикле), и создание (в циклах) через no%7=1.



Исправлено 6 раз(а). Последнее : akvvohinc, 28.08.20 04:34
Ratings: 0 negative/0 positive
Re: Чары ёпт
Nick
Автор

Сообщений: 140
Откуда: Lvov
Дата регистрации: 11.01.2001
Спасибо всем за советы!
начал прозревать

2akvvohinc - УВЫ! массив AAAAAA-ZZZZZZ иммеется только в воспаленном мозгу менеджеров по продаже


Еще раз ! Спасибо всем!
Ratings: 0 negative/0 positive
Re: Чары ёпт
alextash

Сообщений: 2281
Откуда: НСК
Дата регистрации: 03.05.2006
Затем, изучив по возможности само здание (с улыбкой вспомнил Джонатан), он попытался выяснить,
какого рода продукцию выпускало "Объединение". И ему удалось кое-что узнать. Так, например, ему стало
известно, что каждому из четырех тысяч видов выпускаемой компанией продукции соответствовало определенное
буквосочетание, от "Ааб", которое обозначало примесь к молочному коктейлю, до "Яюя", за которым стояли
роторы для тракторных индукторов.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 18 (Гостей: 18)

© 2000-2024 Fox Club 
Яндекс.Метрика