Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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™

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™

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™

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™

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™

min@y™ (статус: Доктор наук), 11 января 2011, 14:28 [#11]:

Цитата (Адмирал):

Какой код чтобы Занести номер рандомной строчки из мемо

Куда занести и зачем?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Адмирал

Адмирал (статус: Посетитель), 11 января 2011, 14:51 [#12]:

неправильно, какая команда ну тоесть(Memo.Lines..) позволяет выбрать из всех строк в Memo1 например случайную, и номер строки в переменную занести
min@y™

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™

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™

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™

min@y™ (статус: Доктор наук), 11 января 2011, 16:24 [#19]:

Цитата (Адмирал):

а понятно, спасибо.

"спасибо" - это много, пива достаточно.

Цитата (Адмирал):

наверное закончил программу, как её назвать?

Назови её [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] [вырезано цензурой] в рот!

Цитата (Адмирал):

и кстати чтобы пользоваться программой нужен только .exe файл?

Смотря, что за программа, и что она делает.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Адмирал

Адмирал (статус: Посетитель), 11 января 2011, 16:56 [#20]:

нет, спасибо в самый раз, пива будет мало!
Насчёт назвать, я спрашивал не какое название сделать, а как его сделать.
У меня простая программа 4 кнопки 3 мемо и 2 лабела;D

Страницы: [1] [2] [3] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 марта 2023, 00:23
Выполнено за 0.04 сек.
Рейтинг@Mail.ru