|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  ввод массива едит скажите пожалуйста,как ввести одномерный массив в едит.(нет разделителей) Пример: вводим число в едит  1111,и делаем из него массив 1 1 1 1 ? | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Так из массива в Edit или наоборот? | 
| 
			 
			#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]; | 
| 
			 
			#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; | 
| 
			 
			#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));
...Последний раз редактировалось 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; |