|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как из Edit.text передать слова (string) массиву?
Пишу простенькую программу. Смысл проги: в Edit вводится n слов через пробел, после нажатия на кнопку программа берет всю строку edit.text и начинает по 1 символу "перетаскивать" всё в 1ую ячейку массива words[1..m] of string, пока не увидит код пробела, после чего продолжает делать то же самое, только в следующую ячейку этого же массива. Потом случайным образом пишет в Label1.Caption 1 из этих слов. При работе почему-то выдает ошибку. Фрагмент кода:
Код:
procedure TForm1.StartClick(Sender: TObject); const n=64; var words : array[1..n]of string; i,k,s,lt : byte; begin k:=1; i:=1; while i<>length(input.Text) do begin while lt<>32 do begin lt:=ord(input.text[i]); words[k]:=words[k]+chr(lt); i:=i+1 end; k:=k+1; end; Label1.Caption:=words[1]; //для теста программы сделал пока что 1ый элемент массива, а не случайный end; http://rghost.ru/44239891.view |
#2
|
||||
|
||||
А если так, if вместо while
Код:
... while i<=length(input.Text) do if lt=32 then begin inc(k); lt:=ord(input.Text[i]); end else begin lt:=ord(input.Text[i]); words[k]:= words[k]+chr(lt); inc(i); end; ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 03.03.2013 в 17:44. |