|
Вопрос # 4 907/ вопрос открыт / |
|
Здравствуйте!
Скажите как сослаться на номер строчки из Memo ну тоесть указать в коде номер строчки
 |
Вопрос задал: Адмирал (статус: Посетитель)
Вопрос отправлен: 11 января 2011, 12:47
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
var
S: string;
Index, Count, Len, j: Integer;
Symbol: Char;
begin
Count:= Memo.Lines.Count; // кол-во строк в мемо
S:= Memo.Lines[Index]; // прочесть в переменную S строку №Index (0 <= Index < Count)
Memo.Lines[Index]:= S; // Заменить строку №Index (0 <= Index < Count) на содержимое S
Len:= Length(Memo.Lines[Index]); // длина строки №Index (0 <= Index < Count)
Symbol:= Memo.Lines[Index][j]; // j-й символ (1 <= j <= Len) строки №Index (0 <= Index < Count)
// ну и и т.д. и т.п.
end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 11 января 2011, 12:58
Оценка за ответ: 5
Комментарий к оценке: в самый раз
|
Мини-форум вопроса
Всего сообщений: 49; последнее сообщение — 12 января 2011, 16:41; участников в обсуждении: 4.
Страницы: [1] [2] [3] [Следующая »]
|
Адмирал (статус: Посетитель), 11 января 2011, 13:14 [#1]:
ещё кое что спрошу, как можно во множество добавить Значение переменной(int)
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 13:22 [#2]:
Цитата (Адмирал):
как можно во множество добавить Значение переменной(int)
Какой тип множества? set of <что?>
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 13:25 [#3]:
чар
|
|
Адмирал (статус: Посетитель), 11 января 2011, 13:26 [#4]:
хотя можно сделать и другое( числительное) только скажи как, если нужно будет
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 13:30 [#5]:
Если переменная типа Integer, а множество типа Char, то вот так:
var
X: set of Char;
Y: Integer;
begin
X:= ['a', 'b', 'ц'];
Y:= 100500;
X:= X + [Char(Y & $FF)]; // остаётся только младший байт
//(особенность паскалевских множеств)
// Или так:
Include(X, Char(Y & $FF));
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 13:33 [#6]:
что такое Y & $FF
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 13:39 [#7]:
Цитата (Адмирал):
что такое Y & $FF
Пардон, паскаль и С++ мешают друг другу у меня в голове.
var
X: set of Char;
Y: Integer;
begin
X:= ['a', 'b', 'ц'];
Y:= 100500;
X:= X + [Char(Y and $FF)]; // остаётся только младший байт
//(особенность паскалевских множеств)
// Или так:
Include(X, Char(Y and $FF));
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 13:54 [#8]:
а $FF для чего нужны? или можно ли их на что нибудь ещё заменить?
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 14:03 [#9]:
Да можно их вообще убрать. Я просто хотел указать явно, что при добавлении в множество от переменной добавляется только младший байт, а остальные теряются. Для 32-битных систем тип Integer - это 4 байта, а элементы множеств должны быть максимум 8-битные (1-байтные), потому что в множестве может быть не более 256 элементов.
var
X: set of Char;
Y: Integer;
begin
X:= ['a', 'b', 'ц'];
Y:= 100500;
X:= X + [Char(Y)];
// Или так:
Include(X, Char(Y));
end;
В данном случае в множество добавится число 148, это и есть младший байт от числа 100500.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 14:19 [#10]:
так, Какой код чтобы Занести номер рандомной строчки из мемо
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 14:28 [#11]:
Цитата (Адмирал):
Какой код чтобы Занести номер рандомной строчки из мемо
Куда занести и зачем?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 14:51 [#12]:
неправильно, какая команда ну тоесть(Memo.Lines..) позволяет выбрать из всех строк в Memo1 например случайную, и номер строки в переменную занести
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 14:59 [#13]:
Цитата (Адмирал):
неправильно,
Чего неправильно?
Цитата (Адмирал):
какая команда ну тоесть(Memo.Lines..) позволяет выбрать из всех строк в Memo1 например случайную, и номер строки в переменную занести
Есть такая команда - это сборная России по футболу. Она может занести всё, что угодно, куда угодно, кроме мяча в ворота противника.
var
Line: Integer;
begin
Line:= Random(Memo.Lines.Count); // ВСЁ!
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 15:05 [#14]:
Ты очень медленно отвечаешь. У меня скоро рабочий день кончится, а я так и не понял, в чём у тебя проблема.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 15:34 [#15]:
Line:= Random(Memo.Lines.Count)
я так сначала тоже делал, это разве правильно?
|
|
Адмирал (статус: Посетитель), 11 января 2011, 15:47 [#16]:
В общем сделал по другому, тогда ещё вопрос, почему когда я жму жму на кнопку, в конце добавляется какойто ненужный -
procedure TForm1.Button3Click(Sender: TObject);
var M1,M2 : INTEGER;
begin
for M1:=0 to Memo1.Lines.Count do
begin
M2:=Random(Memo2.Lines.Count);
Memo3.Lines.Add(Memo1.Lines [M1] + '-' + Memo2.Lines [M2]);
Memo2.Lines.Delete(M2);
end
end;
ну вот например из memo1 берётся Значение 123 а из Memo2 343
Получается вот так
123-343
-
А хочется так
123-343
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 16:12 [#17]:
Цитата (Адмирал):
Line:= Random(Memo.Lines.Count) я так сначала тоже делал, это разве правильно?
А почему нет-то?
Цитата (Адмирал):
почему когда я жму жму на кнопку, в конце добавляется какойто ненужный -
См. код (за тебя пришлось форматировать):
procedure TForm1.Button3Click(Sender: TObject);
var
M1, M2: INTEGER;
begin
for M1:= 0 to Memo1.Lines.Count - 1 do // <--- ты "-1" тут забыл,
//поэтому и лишний минус вылезает (странно, что не AV)
begin
M2:= Random(Memo2.Lines.Count); // Номер случайной строки в Memo2
Memo3.Lines.Add(Memo1.Lines[M1] + '-' + Memo2.Lines[M2]); // Добавление
Memo2.Lines.Delete(M2); // Удаление строки
end;
end;
З.Ы. Бесплатный совет: форматируй исходники и пиши комментарии. Неотформатированный кривой код без комментов читать лень.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 16:15 [#18]:
а понятно, спасибо. наверное закончил программу, как её назвать?
и кстати чтобы пользоваться программой нужен только .exe файл?
|
|
min@y™ (статус: Доктор наук), 11 января 2011, 16:24 [#19]:
Цитата (Адмирал):
а понятно, спасибо.
"спасибо" - это много, пива достаточно.
Цитата (Адмирал):
наверное закончил программу, как её назвать?
Назови её [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] в рот!
Цитата (Адмирал):
и кстати чтобы пользоваться программой нужен только .exe файл?
Смотря, что за программа, и что она делает.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Адмирал (статус: Посетитель), 11 января 2011, 16:56 [#20]:
нет, спасибо в самый раз, пива будет мало!
Насчёт назвать, я спрашивал не какое название сделать, а как его сделать.
У меня простая программа 4 кнопки 3 мемо и 2 лабела;D
|
Страницы: [1] [2] [3] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|