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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2009, 23:49   #1
yaquake
 
Регистрация: 28.02.2009
Сообщений: 3
По умолчанию Числа из edit1.text в массив..как?

Здравствуйте, я в программировании новичок и хотел бы попросить помощи.
Ситуация такая: имеем массив двумерный, edit1 и кнопку. В edit1 вводим числа, через запятую, например 4,7,21,128. По нажатию кнопки система считывает первое число (4) и заносит четвертую строку двумерного массива в новый, потом седьмую строку, двадцать первую и наконец 128-ю. В итоге получаем новый массив из четырех строк (старый нетронут). Как это реализовать? Спасибо.

Извините, название темы некорректное.
yaquake вне форума Ответить с цитированием
Старый 01.03.2009, 00:38   #2
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Во первых - зачем массив двумерный?
А по теме - объявить одномерный массив размерностью с максимальным значением чисел.Считываем с Edit числа(string), переводим их в опять же числа (integer, например) и пишем в массив по индексу, соответствующему числам, типа - massiv[StrToInt(Edit1.text (до зпт))]
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.03.2009, 09:08   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

1. Чтобы по нажатию кнопки последовательно считывать числа надо завести глобальную переменную-счетчик и присвоить ему значение 1.
var
Form1: TForm1;
i:integer=1;
2. В обработчике кнопки примерно так
Код:
s:=Edit1.text+',';//добавим запятую в конец
k:=StrToInt(copy(s,1,pos(',',s)-1));//читаем очередное число
for j:=1 to n do
b[i,j]:=a[k,j] //заносим строку к в новую матрицу
delete(s,1,pos(',',s));//удаляем просмотренное число с запятой
inc(i);
end;
Это наброски с ходу, может немного поправить, но идея такая.
puporev вне форума Ответить с цитированием
Старый 01.03.2009, 09:08   #4
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

Лучше массив не с размерностью с максимальным значением чисел, а динамический массив, сначало считаем сколько чисел в edit1 (например количество запятых +1), а затем считывает число, и в новый массив добавляем строчку старого с этим индексом. Числа из строки с запятыми можно получить следующим образом:
Код:
for i:=1 to length (edit1.text) do 
  begin  
  if edit1.text[i]=',' then 
     begin
     mas[j]:=StrToInt(stemp);
     inc(j);
     stemp:='';
     continue;
     end
  stemp:=stemp+edit1.text[i];
  end;
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 01.03.2009, 14:02   #5
yaquake
 
Регистрация: 28.02.2009
Сообщений: 3
По умолчанию

Спасибо всем, способ от puporev помог.

Последний раз редактировалось yaquake; 01.03.2009 в 14:08.
yaquake вне форума Ответить с цитированием
Старый 01.03.2009, 14:06   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
k:=StrToInt(copy(s,1,pos(',',s)-1));//читаем очередное число
С чего Вы взяли, что считывается по одной цифре? Эта запись означает, что копируется часть строки от первого символа до первой запятой, хоть 254 ситмвола. Вместо того чтобы умничать, набрали бы код, да проверили или хотя бы книжку какую открыли. Больше всего бесит тупость в сочетании с упрямством.
puporev вне форума Ответить с цитированием
Старый 01.03.2009, 14:09   #7
yaquake
 
Регистрация: 28.02.2009
Сообщений: 3
По умолчанию

Я все сделал и с превеликим уважением кланяюсь до земли, не стоит сразу говорить про тупость и упрямство, я конечно благодарен, но с проектом мучаюсь уже часов 20.

Немного недоглядел.

Последний раз редактировалось yaquake; 01.03.2009 в 14:12.
yaquake вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать в Edit1.Text у меня информация Integer Shaitan63 Общие вопросы Delphi 11 29.01.2009 11:20
AnsiUpperCase(Edit1.Text); Шура Помощь студентам 3 01.12.2008 20:04
y=Edit1->Text ??? m.a.x.i.m Помощь студентам 8 31.03.2008 11:29
if edit1.text:='123'then ben95 Помощь студентам 5 28.01.2008 16:29
из edit1.text в stringgrid. fluer Общие вопросы Delphi 8 25.04.2007 11:23