Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с массивом, Перевод массива из STR в INT 
:(
    Опции темы
angelofdeath
Дата 21.6.2005, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 21.6.2005

Репутация: нет
Всего: нет



Привет всем , у меня такая проблема , есть массив содержащий
стринговые переменные мне надо создать поролельно такой же массив
содержащие эти же элементы , только они должны быть integer – простым копирование и переводом (STRToInt)не получается пишет о несоответствии типов
подскажите плиз.

Код

var a:array of string;
      s:string;
begin 
  s:='10 20 30 40 50 60'; 
  Repeat // 
    setlength(a,length(a)+1); 
    if pos(' ',s)>0 then 
      begin 
        a[length(a)-1]:=copy(s,1, pos(' ',s)); 
        s:=copy(s,pos(' ',s)+1, length(s)); 
      end 
    else
      begin 
        a[length(a)-1]:=s; 
        break; 
      end; 
  Until False


Это сообщение отредактировал(а) Girder - 21.6.2005, 13:44
PM MAIL   Вверх
Poseidon
Дата 21.6.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Измени 9 строку на
Код
a[length(a)-1]:=copy(s,1, pos(' ',s)-1);


Тогда и
Код

var b: array of integer; i: integer;
...

for i:= 0 to length(a)-1 do
begin
setlength(b,length(b)+1);
b[i]:= StrToInt(a[i]);
end;
прокатит

Это сообщение отредактировал(а) Poseidon - 21.6.2005, 14:05


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Payne
Дата 21.6.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Детектив
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 6.4.2005
Где: Петербург

Репутация: 4
Всего: 10



Если массив со строками ты уже получил, то можешь использовать следующий код для создания "копии" массива:
Код

var
  i: integer;  //счетчик цикла
begin
  SetLength (int_ar, len); //int_ar - массив с числами, len - длина массива. Длины массивов совпадают
  for i := 0 to len-1 do //в динамических массивах элементы начинаются с нуля
  begin
    temp_str := str_ar[i]; //temp_str - переменная, куда помещается строка из массива str_ar
    temp_num := StrToInt (temp_str); //переменная, в которую записывается преобразованная в число строка
    int_ar[i] := temp_num; //присваиваем очередной ячейке массива числовое значение
  end;
end;

Вот и всё.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.