Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Число, соответствующее буквенному названию колонки, нужны функции 
:(
    Опции темы
Michael.de
Дата 26.7.2009, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: нет
Всего: 9



Цитата(Mal Hack @  25.7.2009,  23:35 Найти цитируемый пост)
Про ord() - 64 взял у кого-то с этого топика, не проверяя.
Для больших латинских букв сдвиг равен 64, для маленьких - 96 (т.к. ord('A')=65, a ord('a')=97)

вот моя версия этих ф-ций:
Код

 // из заглавных букв - число:
 function f1($a){
  $p=$ret=0;
  for ($i=strlen($a)-1; $i>=0; $i--){
   $ret+=(ord($a{$i})-64)*pow(26, $p);
   $p++;
  }
  return $ret;
 }

 // из числа - заглавные буквы:
 function f2($a){
  $ret="";
  while ($a>0){
   if ($a%26) $ret=chr($a%26+64).$ret;
   else {$ret=chr($a%26+90).$ret; $a-=26;}
   $a=floor($a/26);
  } 
  return $ret;
 }
и их проверка:
Код

 // проверка ф-ции f1() :
 $v1=array('PC', 'MAC', 'PS', 'ZX');
 for ($i=0; $i<count($v1); $i++) echo $v1[$i]."->".f1($v1[$i])."; ";

 // проверка ф-ции f2() :
 $v2=array(25, 26, 27, 701, 702, 703, 18277, 18278, 18279);
 for ($i=0; $i<count($v2); $i++) echo $v2[$i]."->".f2($v2[$i])."; ";

P.S. была ошибка - исправил smile

Это сообщение отредактировал(а) Michael.de - 26.7.2009, 19:20
PM MAIL   Вверх
Photon
Дата 26.7.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Michael.de и NLspieler, ваши функции обратного преобразования работают неправильно..
Например число 52 должно преобразоваться в AZ. В ваших функциях получается B@

Нормально работают функция товарища ksnk (отсюда) и моя.

Это сообщение отредактировал(а) Photon - 26.7.2009, 15:17


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
Michael.de
Дата 26.7.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: нет
Всего: 9



Photon: да, действительно smile
P.S. а сейчас? smile
PM MAIL   Вверх
Photon
Дата 26.7.2009, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Michael.de, ну вот сейчас на правду вроде похоже.. smile


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.