![]() |
|
#1
|
|||
|
|||
![]() скажите пожалуйста,как ввести одномерный массив в едит.(нет разделителей) Пример: вводим число в едит 1111,и делаем из него массив 1 1 1 1 ?
|
#2
|
||||
|
||||
![]() Так из массива в Edit или наоборот?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() из Едит в массив
Суть моей задачи такова: Пользователь вводит в едит двоичное число,программа должна его перевести в 10ое и вывести в другой едит. Последний раз редактировалось mixasnt, 07.01.2013 в 00:47. |
#4
|
||||
|
||||
![]() Примерно так:
Код:
var buf : array of Byte; I : Integer; St : String ... St := Edit1.Text; SetLength(Buf, Length(St)); for I := 0 to Length(Edit1.Text) - 1 do Buf[i] := St[I + 1]; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
![]() Цитата:
так не получается (ошибка типов данных) я так ещё пробовал: Код:
var A:array[1..n] of byte; i:byte; S:string[n]; begin s:=Edit1.Text; //присваеваем перменной //строк-го типа значение в нах-я Edit1 for I := 1 to n do //цикловым процессом вводим необх-е эл. A[i]:=StrToInt(S[i]); //в массив А но тоже глухо( |
#6
|
||||
|
||||
![]() Забыл преобразование дописать
Код:
Buf[i] := ord(St[I + 1]) - $30; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() ![]() Цитата:
|
#8
|
||||
|
||||
![]() Читать умеешь? У меня как массив объявлен?
Можно сразу напрямую, минуя буфер Код:
function BinToInt(BinStr : string) : Int64; var i : Byte; RetVar : Int64; begin BinStr := UpperCase(BinStr); if BinStr[Length(BinStr)] = 'B' then Delete(BinStr, Length(BinStr), 1); RetVar := 0; for i := 1 to Length(BinStr) do begin if not (BinStr[i] in ['0','1']) then begin RetVar := 0; Break; end; RetVar := (RetVar shl 1) + (Byte(BinStr[i]) and 1) ; end; Result := RetVar; end; ... Edit2.Text := IntToStr(BinToInt(Edit1.Text)); ... Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 07.01.2013 в 01:10. |
#9
|
|||
|
|||
![]() Альтернативное решение задачиможет кому то понадобится)
Код:
procedure TForm1.Button1Click(Sender: TObject); var base, rez : int64; i : integer; begin base := 1; rez := 0; for i := Length(Edit1.Text) downto 1 do if Not ( Edit1.Text[i] in ['0'..'1'] ) then begin Application.MessageBox('В edit1 не двоичное число!!', 'Ошибка', MB_ICONSTOP or MB_OK); Exit end else begin rez := rez + StrToInt(Edit1.Text[i])*Base; Base := Base * 2; end; Edit2.Text := IntToStr( rez ) end; |