powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Насколько А больше Б
6 сообщений из 6, страница 1 из 1
Насколько А больше Б
    #38987072
OKuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Честно, искала по форуму, не нашла ;)
Всем известно, что символы тоже можно сравнить, например, что A больше B на один.
После Z пойдет АА, после AZ пойдет BA и т.д.
Скажите, плиз, есть ли функция, которая мне просто даст ответ, сколько будет, например, C - CD.
Прошу простое решение, без наворотов ;)
...
Рейтинг: 0 / 0
Насколько А больше Б
    #38987084
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OKuzA больше B на один. https://msdn.microsoft.com/en-US/library/5ckats3t(v=vs.80).aspx
OKuzфункция, которая мне просто даст ответ, сколько будет, например, C - CD.
Прошу простое решениеготового нет, ну или искать придётся столько, что проще будет на основе вышеописанной функции сваять свою
...
Рейтинг: 0 / 0
Насколько А больше Б
    #38987112
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет такой функции. Надо свою писать. Последовательность похожа на 26-ричную систему счисления, но не совсем, т.к. начинается с 1.
т.е.
A = 1
B = 2
...
Z = 26
AA = 27 или 1 * 26 + 1
..
AZ = 52 или 1 * 26 + 26
BA = 53 или 2 * 26 + 1
...

Надо переводить по этой схеме оба аргумента в 10-ричную а затем считать как обычно.
...
Рейтинг: 0 / 0
Насколько А больше Б
    #38987121
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
? from26('CD') - from26('C')

proc from26
lpara tcVal
local x, c, i
x = 1
for i = 1 to len(tcVal)
	c = upper(substr(tcVal, i, 1))
	if !between(c, 'A', 'Z')
		? 'Неверный символ: ' + c
		x = 0
		exit
	endif
	x = x * 26 + asc(c) - 64 && 64 = asc('A') - 1
endfor
return x



PS Если это для экселя, то он умеет десятичные номера столбцов понимать.
...
Рейтинг: 0 / 0
Насколько А больше Б
    #38987265
OKuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Угу, вывожу в Excel кое-чего..
Пыталась формулу поставить в ячейки циклом
Написала что-от типа:
str_formula = "=CD" + Str(i) + "+EK" + Str(i)
получается нормальная строка '=CD9+EK9' например
вывожу ее в Excel
.ActiveCell.FormulaR1C1 = str_formula
смотрю в Excel, а там:
='CH9'+'JD9'
естественно не считает...
я решила через относительные ссылки
str_formula = "=RC[79] + RC[138]"
только мне лень было считать сколько это столбцов справа,
вот я и решила.. поставлю вместо цифры 79 разницу между C и CD
Короче вот...
Но думаю, не важно, можно и посчитать..
Просто у меня 846 столбцов :(
;)
...
Рейтинг: 0 / 0
Насколько А больше Б
    #38987413
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OKuzУгу, вывожу в Excel кое-чего..а на проще ли в экселе хотя бы на время формирования отчёта включить
Код: plaintext
.ReferenceStyle = xlR1C1
и не заморачиваться с этой дурацкой буквенной "нумерацией"?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Насколько А больше Б
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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