![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Нужны две функции.
1) По буквенному названию, аналогичному названиям колонок в Экселе (A, B, ... AB, CDD), получает соотв. число по порядку. Пример: А -> 1 B -> 2 Z -> 26 AA -> 27 AF -> 32 ... 2) По такому номеру получает буквенный вид колонки 1 -> A 2 -> B 26 -> Z 27 -> AA 53 -> BA ... -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Над этой темой уже думал в соседней теме, да было лень код дописать, там пару проблем было.
вот часть по преобразованию в число:
Если нужно, могу выложить код полностью, с преобразованием текста из соседней темы, но только позднее, щас тороплюсь. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Мне трехзначные названия тоже нужны
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
В общем, что-то этот код мне не очень понравился, я решил сделать более элегантный. Вот что получилось:
Функция возвращает номер для колонки
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
||||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
А вот и вторая:
Кому нужно, питайтесь -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Придумал функцию преобразующую буквы в числа, обратную функцию пока не осилил.
Это сообщение отредактировал(а) NLspieler - 21.7.2009, 22:22 |
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Осилил функцию обратного преобразования из числа в буквенную комбинацию
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Хм... а про base_convert вроде как никто и не слышал?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Проблема в том, что тут нет цифры ноль, поэтому речь уже не идет о числах 26 степени. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
||||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Вот, блин!
И кто такой формат придумал? Lotus или Билли?
Это сообщение отредактировал(а) ksnk - 25.7.2009, 20:44 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Mal Hack |
|
||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Предложу, пожалуй, несколько более отимальный вариант:
Мог несколько наврать с математикой - ошибка на единицу ("следующий +1, предыдущий"), но подход вроде верен. Про ord() - 64 взял у кого-то с этого топика, не проверяя. Что касается обратного преобразования (проверить не могу, но вроде бы так):
Как видно, принцип прост и сводится к основным математическим операциям. |
||||
|
|||||
| Photon |
|
|||
|
Злобный программер ![]() ![]() Профиль Группа: Участник Сообщений: 282 Регистрация: 27.2.2009 Где: Таганрог Репутация: 10 Всего: 12 |
В-общем как-то так.. -------------------- With best regards.. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |