![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
вывод некоторых строк из файла [D7, XP]
gvozdkoff © (2011-12-29 16:19:00)Всем привет, ребята, чего то туплю
Есть текстовый файл, вот его содержание
ИМЯ,РАЗМЕР,ДАТА,ВРЕМЯ
ИМЯ,РАЗМЕР,ДАТА,ВРЕМЯ
после того как разбил строки над подстроки (разделяющим символом является запятая)
sl1:= TStringList.Create;
sl1.LoadFromFile('log.txt');
sl2:= TStringList.Create;
sl2.Delimiter:= ',';
sl2.DelimitedText:=sl1.Text;
sl2.SaveToFile('log.txt');
Получилось следующее
ИМЯ
РАЗМЕР
ДАТА
ВРЕМЯ
ИМЯ
РАЗМЕР
ДАТА
ВРЕМЯ
Мне нужно вывести определенные строки, например, только ИМЕНА
то есть
номер_строки=номер_строки + 4
Как это реализовать то ? Подскажите пожалуйста
sniknik (2011-12-30 13:34:00) [1]> загнал все в StringGrid
> спасибо большое за подсказку
тогда не за что... реально не за что.
gvozdkoff (2011-12-30 10:59:00) [2]
> RWolf © (30.12.11 10:23) [10]
> // вспомнился анекдот про рацию на бронетранспортёре.
))))
Построил прапор роту и говорит:
- Кто может починить рацию на бронетранспортёре?
Из строя:
- Товарищь прапорщик, а рация на лампах или на транзисторах?
- Для тупых повторяю - НА БРОНЕТРАНСПОРТЁРЕ!!!
gvozdkoff (2011-12-30 10:58:00) [3]мужики, я извиняю если кого обидел, сейчас нашел процедуру , которая позволяет работать с таким типом файла, как с базой данных, загнал все в StringGrid. Ну так то вообще замечательно, в плане визуального отображения данных ))спасибо большое за подсказку
RWolf (2011-12-30 10:23:00) [4]// вспомнился анекдот про рацию на бронетранспортёре.
Jeer (2011-12-30 10:00:00) [5]
> gvozdkoff (30.12.11 09:49) [8]
> впредь будьте повнимательнее, файл текстовый,
> sl1.LoadFromFile('log.txt');
Ты слушай, что тебе говорят, а не фантаризуй чего не знаешь.
gvozdkoff (2011-12-30 09:49:00) [6]
> sniknik © (30.12.11 09:28) [7]
> обычный csv формат, разделение запятыми... открывается excel-
> ем, + некоторыми движками/рекордсетами (даже BDE). непонятно
> зачем велосипед изобретать.
>
> > в дальнейшем планируется выборка данных по дате либо диапазону
> дат, так что на этот случай решил пока перезаписывать
> вот вот уже начинается... а лучше бы решил изучить что нибудь
> DB-шное.
впредь будьте повнимательнее, файл текстовый,
sl1.LoadFromFile('log.txt');
sniknik (2011-12-30 09:28:00) [7]обычный csv формат, разделение запятыми... открывается excel-ем, + некоторыми движками/рекордсетами (даже BDE). непонятно зачем велосипед изобретать.
> в дальнейшем планируется выборка данных по дате либо диапазону дат, так что на этот случай решил пока перезаписывать
вот вот уже начинается... а лучше бы решил изучить что нибудь DB-шное.
Dennis I. Komarov (2011-12-30 08:45:00) [8]array of TRec
gvozdkoff (2011-12-30 07:39:00) [9]насчет перезаписи файла, в дальнейшем планируется выборка данных по дате либо диапазону дат, так что на этот случай решил пока перезаписывать
gvozdkoff (2011-12-30 07:36:00) [10]спасибо огромное господа, сейчас буду пробовать реализовать это
Юрий Зотов (2011-12-29 16:48:00) [11]
j := 0; // j - номер нужной строки внутри группы из 4-х строк (j = 0,1,2,3)
for i := 0 to sl.Count div 4 - 1 do // i - номер группы
WriteLn(sl[4 * i + j]); // Выводит только нужные строки
И два стринглиста, конечно, ни к чему - достаточно одного. Да и стоит ли перезаписывать файл - тоже вопрос (зависит от задачи).
KilkennyCat (2011-12-29 16:44:00) [12]
> for i := n to sl1.count - (n + 1) do result := result +
> sl1[n] + ' ';
не , че та я напутал.
while n < sl1.count do begin
result := result + sl1[n] + ' ';
n := n + 4;
end;
KilkennyCat (2011-12-29 16:39:00) [13]
> sl1:= TStringList.Create;
> sl1.LoadFromFile('log.txt');
> sl2:= TStringList.Create;
> sl2.Delimiter:= ',';
> sl2.DelimitedText:=sl1.Text;
> sl2.SaveToFile('log.txt')
два стринглиста ненужно.
sl1:= TStringList.Create;
sl1.LoadFromFile('log.txt');
sl1.Delimiter:= ',';
sl1.DelimitedText:=sl1.Text;
result := '';
n := 0; // селектор, выбирает, что выводить
for i := n to sl1.count - (n + 1) do result := result + sl1[n] + ' ';