Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2014, 22:24   #1
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию Преобразование строки в целочисленный массив

Всем привет,

Необходимо из строки вида: "1 2 13 4 5 18" получить целочисленный массив
Код:
a[1]:=1
a[2]:=2
a[3]:=13
и т.д.
Как это проще всего реализовать? Заранее спасибо
glazik вне форума Ответить с цитированием
Старый 20.05.2014, 22:31   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Сначала вогнать в TStringlist, потом в цикле IntToStr
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.05.2014, 22:36   #3
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

StrToInt то есть
doktor255 вне форума Ответить с цитированием
Старый 20.05.2014, 22:38   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
StrToInt то есть
Ну да, но пусть это будет наша маленькая тайна
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.05.2014, 22:44   #5
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Код:
StrList:=TStringList.Create;
StrList.Add(edit1.text);
а как дальше?
glazik вне форума Ответить с цитированием
Старый 20.05.2014, 22:58   #6
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

А дальше DelimitedText
FaTaL вне форума Ответить с цитированием
Старый 20.05.2014, 23:12   #7
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Код:
var
  Str:TStringList;
  a:array of integer;
  i:integer;
begin
  Str:=TStringList.Create;
  Str.Add(edit1.text);
  Str.Delimiter := ' ';
  str.DelimitedText:=edit1.text;

  for i:=0 to Str.Count-1 do
    begin
      a[i]:=strtoint(str[i]);
      showmessage(str[i]);
    end;
end;
Выдает ошибку, что не так?
glazik вне форума Ответить с цитированием
Старый 20.05.2014, 23:28   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
var
  ST:TStringList;
  a:array of integer;
  i:integer;
begin
  ST:=TStringList.Create;
  try
    ST.Delimiter := ' ';
    ST.DelimitedText:=edit1.text;

    SetLength(a, ST.Count);
    for i:=0 to ST.Count-1 do
       a[i]:=strtoint(ST[i]);
  finally
     ST.Free;
  end;

  {теперь, для отладки, выведем массив }
  for i:=Low(a) to High(a)  do
     showmessage( IntToStr(a[i]));
end;
p.s. ВНИМАНИЕ! Проверки на то, что в строке только целые числа тут НЕТ!
Если надо - допишите!

Последний раз редактировалось Serge_Bliznykov; 20.05.2014 в 23:30.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.05.2014, 00:59   #9
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Код:
str1:=edit1.text;
strlist1:=TStringList.create;
strlist1.delimiter := ' ';
strlist1.delimitedtext:=str1;
SetLength(num1, strlist1.Count);
for i:=0 to strlist1.Count-1 do
  begin
    num1[i]:=strtoint(strlist1[i]);
    showmessage(inttostr(num1[i]));
  end;
strlist1.free;
{------------------------------------------------------------------------------}
str2:=edit2.text;
strlist2:=TStringList.create;
strlist2.delimiter := ' ';
strlist2.delimitedtext:=str1;
SetLength(num2, strlist2.Count);
for i:=0 to strlist2.Count-1 do
  begin
    num2[i]:=strtoint(strlist2[i]);
    showmessage(inttostr(num2[i]));
  end;
strlist2.free;
Вот как то так, но проблема выводит только первый массив, то есть в едит1 ввел 1 2 3, а во второй 4 5 6, то результат будет 1 2 3 1 2 3
glazik вне форума Ответить с цитированием
Старый 21.05.2014, 01:29   #10
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Код:
strlist2.delimitedtext:=str1;
Внимательней нужно работать с копипастом
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код из Паскаля в Delphi (Дан целочисленный массив A. Переписать в новый массив В элементы с порядковыми номерами, кратными трём ALEXandr20333 Помощь студентам 8 27.02.2014 11:27
введите целочисленный массив в(5).подсчитайте число положительных элементов и перепишите их подряд в другой массив (Паскаль) buzz Помощь студентам 5 15.10.2013 16:16
Целочисленный массив gulbidin222 Помощь студентам 3 23.02.2012 20:45
Целочисленный массив ronil Паскаль, Turbo Pascal, PascalABC.NET 2 10.12.2010 09:36
Преобразование строки в массив чисел в Pascal(Lazarus) GaJIbI4 Помощь студентам 4 20.05.2010 20:38