var
s : string;
begin
s := Memo1.Text; //Заносим в строчку текст
//Далее работаем с ней
end;
Считывание текста memo
Заранее спасибо!
Код:
В строку будет заноситься и многострочный текст, т.е. символы #13, #10.
Второй способ - использование свойства Lines. У свойсва есть набор строк текста. Строки нумеруются с 0.
Код:
var
s : string;
begin
s := Memo1.Lines.Strings[1]; //Заносим в s вторую строку из Memo1
//Если второй строки нет, то в s будет пусто.
end;
s : string;
begin
s := Memo1.Lines.Strings[1]; //Заносим в s вторую строку из Memo1
//Если второй строки нет, то в s будет пусто.
end;
Так что можно работать как и со строками.
ты не понял я конкретно имел в виду в первой строке от 5 до 10 символы сравнить с мемо2
В твоем случае задачу можно решить с помощью второго способа. Смотри код ниже.
Код:
var
s : string;
begin
//Копируем в s символы с пятого по десятый
//включительно
//Использование s не обязательно
s := copy(Memo1.Lines.Strings[0],5,6);
if s = Memo2.Text then
ShowMessage('s = Memo2');
end;
s : string;
begin
//Копируем в s символы с пятого по десятый
//включительно
//Использование s не обязательно
s := copy(Memo1.Lines.Strings[0],5,6);
if s = Memo2.Text then
ShowMessage('s = Memo2');
end;
Введем в первое поле: 0123456789
Во второе: 456789
Получим сообщение: s = Memo2.
спс, то что нужно братан =)
Вот такой у меня возник вопрос в догонку Copy(Memo1.Text, 6, 5) - копирование с 5 по 6 символ, а как сделать удаление с 5 по 6 символ?
Удалять можно с помощью delete:
Код:
...
//удаление с 5 по 6 символ из строки s
//т.е. удаление двух символов, начиная с пятого
Delete(s,5,2);
...
//удаление с 5 по 6 символ из строки s
//т.е. удаление двух символов, начиная с пятого
Delete(s,5,2);
...
спасиб, очень помогли!
Цитата: AIGrifon
Я показал возможные варианты работы с текстом Memo.
В твоем случае задачу можно решить с помощью второго способа. Смотри код ниже.
Введем в первое поле: 0123456789
Во второе: 456789
Получим сообщение: s = Memo2.
В твоем случае задачу можно решить с помощью второго способа. Смотри код ниже.
Код:
var
s : string;
begin
//Копируем в s символы с пятого по десятый
//включительно
//Использование s не обязательно
s := copy(Memo1.Lines.Strings[0],5,6);
if s = Memo2.Text then
ShowMessage('s = Memo2');
end;
s : string;
begin
//Копируем в s символы с пятого по десятый
//включительно
//Использование s не обязательно
s := copy(Memo1.Lines.Strings[0],5,6);
if s = Memo2.Text then
ShowMessage('s = Memo2');
end;
Введем в первое поле: 0123456789
Во второе: 456789
Получим сообщение: s = Memo2.
А как сделать это в цикле, т.е. автоматически прогнать все строки в этот мемо и вывести все похожие значения в 3 memo???
вот что у меня получилось и работает автоматом:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s : string;
i:integer;
begin
Memo3.Clear;
for i:=0 to Memo1.Lines.Count do
begin
s:=copy(Memo1.Lines.Strings,1,5);
if s=Edit1.Text then
begin
s:=Memo1.Lines.Strings;
Memo3.Lines.Add('Сегодня день рождение');
Memo3.Lines.Add(s);
end;
end;
end;
var
s : string;
i:integer;
begin
Memo3.Clear;
for i:=0 to Memo1.Lines.Count do
begin
s:=copy(Memo1.Lines.Strings,1,5);
if s=Edit1.Text then
begin
s:=Memo1.Lines.Strings;
Memo3.Lines.Add('Сегодня день рождение');
Memo3.Lines.Add(s);
end;
end;
end;
:D
Вот у меня такой текст:
======================
#FOLDER
ID=12
NAME=Opera
ON PERSONALBAR=YES
PERSONALBAR_POS=0
EXPANDED=YES
#URL
ID=13
NAME=Загрузка Opera
URL=http://www.opera.com/download/
VISITED=1198159316
#URL
ID=14
NAME=Сообщество Opera
URL=http://my.opera.com/
ICONFILE=my.opera.com.ico
ON PERSONALBAR=YES
PERSONALBAR_POS=1
======================
мне надо найти в этом тексте значение ID, NAME и URL
и записать это построчно, т.е.
ID=12;NAME=Opera;
ID=13;NAME=Загрузка Opera;URL=http://www.opera.com/download/;
ID=14;NAME=Сообщество Opera;URL=http://my.opera.com/; :confused: