![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день. У меня возникла проблема, мне дан документ в котором написаны месяца. Мне надо сделать так, чтоб при нажатии кнопки Button1 информация из документа загрузилась в Memo1, но была бы написана в обратном порядке. Т.е с низу вверх. Там написано примерно так в исходнике:
Январь Февраль Март Апрель и т.д. А надо сделать чтоб отображалось при нажатии кнопки вот так: Декабрь Ноябрь Октябрь Сентябрь и т.д. Помогите сделать так, за ранее спасибо жду ответа. |
|
#2
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,s:integer;
begin
memo1.Lines.LoadFromFile('file.txt');
s:=memo1.Lines.Count;
for i:=0 to memo1.Lines.Count do begin
memo2.Lines.Add(Memo1.Lines.Strings[s]);
s:=s-1;
end;
end; |
|
#3
|
|||
|
|||
|
А можно обойтись 1 Memo как то ?
|
|
#4
|
||||
|
||||
|
Поскольку само memo сортировать данные не умеет,
то придется создать какую-нибудь переменную абстрактного класса tstringlist затем присвоить этому классу строки из memo, отсортировать их и присвоить их обратно memo. Код:
procedure tform1.button1click(sender: tobject); var t:tstringlist; begin t:=tstringlist.create; t.addstrings(memo1.lines); t.sort; memo1.clear; memo1.lines.addstrings(t); end; Так как тебе нужна не сортировка, то с помощью предыдущего кода добавляй по одной строке... |
|
#5
|
||||
|
||||
|
Код:
var
f: Text;
...
implementation
...
procedure ...
var
s: String;
begin
AssignFile(f, 'YourFileName');
Reset(f);
while not EOF(f) do
begin
ReadLn(f, s);
if Memo1.Lines.Count = 0 then
Memo1.Lines.Add(s)
else
Memo1.Lines.Insert(1, s);
end;
CloseFile(f);
end; |