Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.52 MB
Время: 0.035 c
1-1088473840
GrayFace
2004-06-29 05:50
2004.07.18
Как поучить указатель на функцию объекта?


3-1087557086
bSava
2004-06-18 15:11
2004.07.18
Подскажите как узнать подключенных пользователей?!


14-1088372089
SergP
2004-06-28 01:34
2004.07.18
dcu --> pas???


1-1088941478
Bizon's
2004-07-04 15:44
2004.07.18
Проблемы с ComboBox


14-1088388530
Думкин
2004-06-28 06:08
2004.07.18
С днем рождения! 27 июня