Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2015, 00:31   #11
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну так заинклюдьте Билдеровский SysUtils или где там Copy находится.
Пробовал подключить SysUtils, результат всё такой же ... Функция Copy ссылается ( через Find Declaration ) на некий файл под названием xutility ...

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Чет как то сложно тут у вас.
Код:
 System::UnicodeString __fastcall IntToHex(int Value, int Digits)/* overload */;
уже возвращает строку.
Да по сути дела, при переводе строки в hex этой функцией и пользуюсь ... а вот в обратку - ступор ...

Цитата:
Сообщение от p51x Посмотреть сообщение
Людям хочется своих велосипедов... в стд тоже есть готовое.
Да ну эти велосипеды ... я поэтому и пишу тут - хочеЦа всё же, увидеть какие ли бо стандартные решения данного вопроса ...
А велосипедов море, гугл кучу всякой охинеи выдал уже ...




Код:
//-----------------------------------------------------------------------------
#ifndef HEXH
#define HEXH
//-----------------------------------------------------------------------------
#include <string>
#include <iostream.h>
//-----------------------------------------------------------------------------
AnsiString StrToHex(String Text) {
	AnsiString HexString;
	for(int i = 1; i <= Text.Length(); ++i)
		HexString += IntToHex(Text[i], 4);
	return HexString;
}
AnsiString HexToStr(String Text) {
	AnsiString OkString;
	String hex;
	for(int i = 1; i <= Text.Length(); i++) {
		hex+= Text[i];
		if (hex.Length() == 2) {
			OkString += wchar_t(StrToInt("0x"+hex));
			hex = "";
		}
	}
	return OkString;
}
#endif
Может кто-то скажет, что велосипед ... НО проще реализовать у меня не получается )

И ещё 1 вопрос:

Код:
String test = HexToStr(StrToHex("Привет!"));
Если в hex пробовать переводить символы русского алфавита, то в итоге в переменную test записывается абракадабра "♦▼♦@♦8♦2♦5♦B"

Последний раз редактировалось -Jack-; 01.10.2015 в 01:01.
-Jack- вне форума Ответить с цитированием
Старый 01.10.2015, 08:03   #12
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Проверить надо, что ето число. Например:
Код:
StrToIntDef("Привет", -1);
Вернет -1.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 02.10.2015, 02:16   #13
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Проверить надо, что ето число. Например:
Код:
StrToIntDef("Привет", -1);
Вернет -1.
не понял ... в смысле ? К чем здесь эта функция ?

StrToIntDef проверяет, является первый параметр числом, если нет, то берёт по умолчанию 2ой параметр ...
"Привет" - числом не является, поэтому результат -1
-Jack- вне форума Ответить с цитированием
Старый 02.10.2015, 09:33   #14
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
Если в hex пробовать переводить символы русского алфавита, то в итоге в переменную test записывается абракадабра "♦▼♦@♦8♦2♦5♦B"
Цитата:
StrToIntDef проверяет, является первый параметр числом, если нет, то берёт по умолчанию 2ой параметр ...
"Привет" - числом не является, поэтому результат -1
Соответственно можно проверить, если это не число, то и переводить его в хексы смысла нет.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 02.10.2015, 09:53   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
StrToIntDef
Лучше TryStrToInt если есть аналог в бюлдере
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.10.2015, 11:26   #16
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
Лучше TryStrToInt если есть аналог в бюлдере
Функции абсолютно идентичны, кроме возвращаемого значения, достаточно глянуть исходники.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 02.10.2015, 12:54   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Функции абсолютно идентичны
Угу, но '-1' число, а по DEF-проверке - не число
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.10.2015, 16:14   #18
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Соответственно можно проверить, если это не число, то и переводить его в хексы смысла нет.
А каким образом можно переводить строку ( кодировка, к примеру, cp1251 ) в HEX ?
-Jack- вне форума Ответить с цитированием
Старый 02.10.2015, 19:00   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Что вы под этим подразумеваете - перевод записанного в строке числа в хекс или перевод символов строки в хекс, соответсвующе их коду?
p51x вне форума Ответить с цитированием
Старый 02.10.2015, 20:57   #20
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

перевод символов строки в хекс, соответсвующе их коду
-Jack- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вернуть обратно Алекссс Общие вопросы Delphi 1 30.09.2012 23:49
txt в бинарник и обратно cowboy Общие вопросы Delphi 9 16.09.2009 10:54
Из бд и обратно Kelevro PHP 1 11.09.2009 15:22
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13