| 
| 
 | Вопрос # 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] [Следующая »]  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |