Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Преобразование AsciString в IP-адрес

2.6K
05 мая 2003 года
Shure
12 / / 05.05.2003
Народ подскажите как используя только стандартные функции Билдера ( не подключая stlib, stdio string, а используя только vcl ) преобразовать значение TEdit->Text в IP адрес причем желательно чтобы он был в hex-виде, вроде есть спец. функция inet_addr() но для нее надо подключать socket.h
Необходимо для динамического увеличения диапазона адресов.

Что то вроде
for( int i = 0; i <= 100; i++ )
{
ini->WriteString( "Hosts", i, Edit->Text+1 );
// В Edit->Text пользователь должен ввести
// начальный IP-адрес, а в .ini будет писатся
// определеный диапазон IP-адресов
}
451
05 мая 2003 года
Gerret
51 / / 20.05.2000
Надо строку из Edit'a разбить на 4 строки и их уже преобразовывать в Hex.

Функций разбиения я сейчас не вспомню... хелп по AnsiString посмотри, а в Hex переводить, что-то типа StrToHex...
362
05 мая 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by Shure
Народ подскажите как используя только стандартные функции Билдера ( не подключая stlib, stdio string, а используя только vcl )



А что за непонятная неприязнь к stdio
Тут самая простая вещь тебе использовать sscanf

или ты боишься что использование стандартных библиотек сделает твою прогу очень тяжелой :-)

460
05 мая 2003 года
Berg
261 / / 27.03.2003
Не совсем понял суть проблемы, но:
1) Если тебе просто надо писать в *.ini (т.е. в текстовый файл) нечто вида FE.0A.02.01, то юзай
fprintf(ini, "%x.%x.%x.%x", ...);
2) Если тебе нужен именно интернет адрес, то используй inet_addr() с подключением (чем оно тебя так обламывает?) winsock2.h и никакой vcl тебе его не даст...
3) Если все-таки надо, то можно просто руками написать StrToHex. Примитивно, например, так:

AnsiString _IntToHex(int t)
{
char h[] = "0123456789ABCDEF";
AnsiString result;

for (int k = 8*sizeof(int)-4; k>=0; k -= 4)
result += h[(t>>k)&0xF];

return result;
}
2.6K
05 мая 2003 года
Shure
12 / / 05.05.2003
Да я все понимаю что можно это делать и с использованием stdio.h и с помошью winsock2.h
Просто думал что есть в билдере функция по преобразованию текста и ИПешник ...

По ходу придется все-таки stdio подключать т.к. проще варианта я не вижу.
Спасибо за помощь.
460
05 мая 2003 года
Berg
261 / / 27.03.2003
Ты хоть объясни на всякий случай что означает:
"В билдере и не подключая *.h"...Интересно же...Если тебе надо, чтобы все было супер-чисто, то есть asm, или Visual C++ & winapi хотя бы...
2.6K
05 мая 2003 года
Shure
12 / / 05.05.2003
Когда я создаю проект то для использования функции Format(), StrToInt() FileExist() и им подобным ( в хелпе они идут под разделом sysunit )
нет необходимости подключать дополнительные хедеры вот я и думал может есть функция по преобразованию строки в IP-адрес.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог