Текущий архив: 2004.07.18;
Скачать: CL | DM;
Вниз
Помогите с преобразованием типов Найти похожие ветки
← →
DukeArtem © (2004-07-05 00:21) [0]Всем привет!
Идея: Перевести текст из "текст бокса" (допустим edit1.text) в числовую строку...
Требование: через функцию Chr(у неё тип Byte)...
Что мне надо из этого: понять как из типа "текст бокса" сделать подходящим для этой функции (Chr)
Что получилось: Нет возможности перевести.(не знаю команды или как)
Просьба: Подскажите, плииз, но только это; нерасказывая остального, меня прёт до всего самому доходить (правда с маленькой помошью...):@)
З.Ы. Буду благодарен, любому, кто шевелнёт извилиной, по этому поводу!
← →
DrPass © (2004-07-05 00:25) [1]Числовая строка - это звучит круто.
Только функция chr выполняет обратный (в отношении "текст бокса"/*это тоже круто звучит*/) перевод - чисел в символы.
Может, функция strtoint? Или val на худой конец?
← →
SergP © (2004-07-05 01:10) [2]
> DukeArtem © (05.07.04 00:21)
Ты приведи пример чтобы мы поняли что в что ты хочешь перевести.
Например допустим у тебя в edit1.text есть строка "Я Вася Пупкин"
покажи что должно быть после перевода этого "в числовую строку"...
← →
имя (2004-07-05 01:20) [3]Удалено модератором
Примечание: Отдохни
← →
Andy BitOff © (2004-07-05 01:47) [4]
>..Khabibulin (05.07.04 01:20) [3]
А ты такой умный, тебе череп не жмет?
Сам таким не был? Или уже родился ВСЁ на свете зная.
← →
@BraIN © (2004-07-05 02:27) [5]> А ты такой умный, тебе череп не жмет?
У него он отсутствует как класс. Вместе с содержимым.
← →
TUser © (2004-07-05 02:36) [6]строку в чсло - например Val.
ф-ция, обратная chr - ord
← →
Andy BitOff © (2004-07-05 03:07) [7]
>DrPass © (05.07.04 00:25) [1]
>Или val на худой конец?
Почему же на худой конец. Прекрасная функция, точнее процедура. Я бы как раз написал на оборот. Val, ну или на худой конец IntToStr.
Val, вроде и работает быстрее (хотя могу ошибаться) и исключения не генерирует. ИМХО удобнее.
var
I, Code: Integer;
begin
Val(Edit1.Text, I, Code);
if Code <> 0 then
MessageDlg("Error: " + IntToStr(Code), mtWarning, [mbOk], 0, mbOk);
else
MessageDlg("Нет Error", mtConfirmation, [mbOk], 0, mbOk);
end;
← →
GuAV © (2004-07-05 03:18) [8]
> и исключения не генерирует. ИМХО удобнее.
ИМХО, исключение - удобная вещь, и ими нужно уметь пользоваться, а не обходится без них. Сроку в число удобнее всего strtoint/strtofloat. Обратно - формат-рулез. Все ИМХО.
← →
Andy BitOff © (2004-07-05 03:22) [9]Тьфу, в коде лажу написал. И исходя из сабжа так, наверное.
var
a:byte;
code:integer;
begin
Val(Edit1.Text, a, Code);
if Code <> 0 then
MessageDlg("Error: " + IntToStr(Code), mtWarning, [mbOk], 0)
else
MessageDlg("Нет Error ::: a="+Chr(a), mtConfirmation, [mbOk], 0);
end;
← →
Andy BitOff © (2004-07-05 03:30) [10]А ИМХО и не надо отказываться от исключений, но ИМХО в данном, конкретном случае можно. Ведь даже в примере, который я тут накарябал есть IntToStr(Code). ИМХО надо знать где как написать. ИМХО :)
← →
GuAV © (2004-07-05 03:45) [11]а ИМХО даже в данном примере не помешало бы заместо
> MessageDlg("Error: " + IntToStr(Code), mtWarning, [mbOk], 0)
raise EЧеготоТам.CreateFmt("Error: %d on convering %s",[Code, Edit1.Text]);
в этом случае числа нет => дальше делать нефиг => проходим все finally и выходим в except - который отобразит сообщение об ошибке.
> ИМХО надо знать где как написать. ИМХО :)
ИМХО, моё ИМХО аналогично этому ИМХО :)
← →
DukeArtem © (2004-07-05 12:44) [12]SergP © (05.07.04 01:10)
Ну допустим если есть строка "I am Vasya Pupkin", то должно быть так - "49 61 6d 56 61 73 79 61 50 75 70 6b 69 6e", вроде бы!
Вот я и не знаю как это сделать (точнее как брать по одной букве это просто а вот как её перевести...)
{******************************
..Khabibulin (05.07.04 01:20)
А ты хохол недоношенных, недобитый аборт хомяк, просто грубиян...
*******************************}
Остальные: вы хорошие мысли кидаете, но мне до них далеко, сами видите; что-нибудь по проще (я хоть и не совсем новичёк, но в другой области, с этой темой у меня, всегда были проблема, так что извеняйте за ошибки...)
З.Ы. Спасибо!
← →
Cosinus © (2004-07-05 13:26) [13]// Функция перевода строки из N-символов в ее HEX-представление из N*2 символов
// Первый символ становиться первым байтом
// Пример: StrToHex("0123":string)="30313233":string
function StrToHexN(const Value: string): string;
var
n: Integer;
begin
Result := "";
for n := 1 to Length(Value) do
Result := Result + IntToHex(Byte(Value[n]), 2);
end;
← →
DukeArtem © (2004-07-05 20:12) [14]Ну там я нашёл пример:
"
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
Label1.Caption := "";
for i := 1 to Length(Edit1.Text) do
begin
try
Label1.Caption := Label1.Caption + IntToHex(Edit1.Text[i],2) + " "; //*
except
Beep;
end;
end;
end;
"
Но он не хочут работать пишет в главной строчке(помеченна *),
There is no overloaded version of "<element>" that can be called with these arguments
З.Ы. Я знаю, что я делаю,что-то не так, но вот, что.
З.З.Ы. Растроенный своей тупостью, но благодарный DukeArtem
← →
GEN++ © (2004-07-05 23:42) [15]
procedure TForm1.Button1Click(Sender: TObject);
var
S,S1:string;
i:word;
begin
S:=edit1.Text;
S1:="";
for i:=1 to length(S) do
S1:=S1+inttostr(ord(S[i]))+" ";
label1.Caption:=S1;
end;
← →
Denisww © (2004-07-06 00:25) [16]ака аж зачитался
← →
Palladin © (2004-07-06 01:14) [17]
> GEN++ © (05.07.04 23:42)
это немножечко не hex
> [14] DukeArtem © (05.07.04 20:12)
а справку иногда нужно читать
← →
DukeArtem © (2004-07-06 11:55) [18]Спасиб всем, общий смысл понял, остальное надо самому догонять.
Palladin © (06.07.04 01:14)
А справку я читаю, но её много....
← →
GEN++ © (2004-07-06 20:03) [19]>Palladin © Согласен, исправляюсь:
procedure TForm1.Button1Click(Sender: TObject);
var
S,S1,S2:string;
i:word;
begin
S:=edit1.Text;
S1:="";
S2:="";
for i:=1 to length(S) do
begin
S1:=S1+inttostr(ord(S[i]))+" ";
S2:=S1+inttohex(ord(S[i]),2)+" ";
end;//for i:=1 to length(S)
label1.Caption:=S1;
label2.Caption:=S2;
end;//procedure
← →
SergP © (2004-07-06 21:56) [20]function ConvertString(const Source: String): String;
var
i: Integer;
begin
SetLength(Result,Length(Source)*3);
for i := 1 to Length(Source) do move((IntToHex(Ord(Source[i]),2)+" ")[1],Result[3*i-2],3);
end;
Страницы: 1 вся ветка
Текущий архив: 2004.07.18;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.035 c