Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2017, 15:21   #1
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию чтение определенный строки из txt файла

чтение определенный строки из txt файла

Этот код показывает определенный строки из txt файла
но как сделать что бы показывал по очереди после определенный строки

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl : TStringList;
  i : Integer;
  s :string;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile('C:\text.txt');
// for i=0 sl.count do begin
  Memo1.Lines.Add(sl.Strings[11]);

 end;
  finally
    sl.Free;
  end;
end;

Последний раз редактировалось alman12; 03.04.2017 в 15:24.
alman12 вне форума Ответить с цитированием
Старый 03.04.2017, 15:32   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
  sl := TStringList.Create;
  try
    sl.LoadFromFile('C:\text.txt');
    for i=11 to 15 do 
        Memo1.Lines.Add(sl.Strings[i]);
...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2017, 15:48   #3
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

Этот повторно добавляет из строк 10 до строк 15 .Я хочу что добавилось следующие строки после 10-й строки по одному
alman12 вне форума Ответить с цитированием
Старый 03.04.2017, 16:12   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
 Memo1.Lines.Add(sl.Strings[11 + Memo1.Lines.Count  ]);
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.04.2017, 16:14   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от alman12 Посмотреть сообщение
Этот повторно добавляет из строк 10 до строк 15
нет. этот код добавляет 5 строк (с индексами от 11 до 15).


Цитата:
Сообщение от alman12 Посмотреть сообщение
Я хочу что добавилось следующие строки после 10-й строки по одному
какие следующие?
сколько строк нужно добавить?

и я не понимаю. что значит "по одному"?

чтобы нажимаешь на кнопку добавилась одна строчка.
ещё раз нажимаешь - добавилась ещё одна строчка,
и так далее, пока файл не кончится?

или по таймеру строчки должны добавляться?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2017, 16:57   #6
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

чтобы нажимаешь на кнопку добавилась одна строчка.
ещё раз нажимаешь - добавилась ещё одна строчка,
и так далее, пока файл не кончится

да
alman12 вне форума Ответить с цитированием
Старый 03.04.2017, 17:44   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

тогда нужно менять логику работы.

1) нужно описать глобальную переменную.
Для этого надо переместить строчку var sl : TStringList; туда же, где у Вас описана переменная формы
var
Form1: TForm1;
ну и там же описать переменную, где будем хранить индекс строчки.

Код:
var
  Form1: TForm1;
  sl : TStringList;
  indexInFile : integer;
2) на событие формы onCreate нужно добавить иницилизацию переменных и чтение текстового файла.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  sl := TStringList.Create;
  sl.LoadFromFile('C:\text.txt');
  indexInFile := 10; {начнём чтение с 11 строки, учитывая, что строки нумеруются от нуля}
end;
3) на событие onClose формы добавить освобождение занятой переменной sl памяти:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FreeAndNil(sl);
end;
4) ну и собственно событие на кнопке будет выглядеть так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if indexInFile < sl.count then begin
     Memo1.Lines.Add(sl.Strings[indexInFile]);    
     Inc(indexInFile);
  end;
end;

вот и всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.04.2017, 23:37   #8
alman12
Форумчанин
 
Регистрация: 30.12.2013
Сообщений: 466
По умолчанию

Спасибо Serge_Bliznykov
alman12 вне форума Ответить с цитированием
Старый 05.04.2017, 10:42   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

alman12, пожалуйста.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из txt файла DKENT PHP 0 22.09.2012 21:50
Чтение файла .txt RIOs C# (си шарп) 13 22.04.2012 22:04
Чтение данных из txt файла. werrey Общие вопросы Delphi 21 07.01.2012 11:56
if и чтение+вывод из файла .txt webber9989 PHP 4 24.08.2010 22:13
Чтение из TXT файла soonner Общие вопросы Delphi 1 14.03.2009 13:52