![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Резка txt файла... [D7, Win2k]
vigo © (2004-09-20 10:56:00)Народ, подскажите как лучше сделать программу, которая "резала" бы текстовый файл на несколько файлов по дате: Текстовый файл содержит дату и после неё текст; затем дата, текст и т.д. (Сколько дат - столько файлов).
Anatoly Podgoretsky (2004-09-20 16:11:00) [1]А ты прочитал советы выше, другие вряд ли будут, поскольку этих достаточно, можно конечно написать свои функции поиска подстроки, но зачем.
vigo (2004-09-20 16:06:00) [2]ладно... буду сам мучаться
ssk (2004-09-20 15:58:00) [3]а это что? ты сам в вопросе написал:
как лучше сделать программу, которая "резала" бы текстовый файл на несколько файлов по дате: Текстовый файл содержит датуи после неё текст;
vigo (2004-09-20 15:53:00) [4]ищу не дату, а символосочетание "АТМ" в строке
ssk (2004-09-20 15:48:00) [5]ну и где здесь даты?
vigo (2004-09-20 15:45:00) [6]{строка - 1}
Cycle Name| ATM00160 SOC
{строка - 2}
1 | | | 0 | 0 | 0
{строка - 3}
| 0 | 0 |Not Configu
{строка - 4}
2 | | | 0 | 0 | 0
{строка - 5}
| 0 | 0 |Not Configu
... и т.п.
alless (2004-09-20 15:29:00) [7]Дайте чясть файла, посмотреть что и как там написаны данные
TUser (2004-09-20 15:16:00) [8]if not (pos() =0) then
if pos <> 0 then
Amoeba (2004-09-20 14:41:00) [9]Pos + F1
vigo (2004-09-20 14:38:00) [10]подскажите как найти искомые символы в строке...?
заранее спасибо!
TUser (2004-09-20 14:19:00) [11]
> if s:= 'like %ATM%' then
Вот это адназначно - переписать. Тут тебе не sql
vigo (2004-09-20 14:13:00) [12]Прошу прощения ищу не дату, а символосочетание "АТМ" в строке. Сам текст представляет что-то вроде кучи похожих друг на друга таблиц следующих друг за другом. Пытаюсь в строке найти это символосочетание "АТМ", следующие несколько строк представляют собой нужную таблицу.
(извиняюсь за смутные объяснения...)
П7 (2004-09-20 13:58:00) [13]У тебя внутренности текстового файла хоть как-то структурированы или навалены в одну большую кучу без пробелов и переходов строк?
Дата в каком формате задаётся?
Например еслиу тебя каждая новая дата идёт с новой строки и имеет формат "%ii.%ii.%iiii Тут уже может идти текст", т.е. три числа разделённые точкой, при этом первые 2 занимают по 2 символа а 3 - 4 символа, и текст начинается после пробела, то тогда можно делать следующим образом:
1. Открываем файл на чтение
2. Если конец файла ->7, иначе Считываем строку
3. Если 3 и 6 символы - точки "." [if (str[3] = '.') and (str[6] = '.') ], то ->4, иначе ->6
4. Если первые 2 символа преобразуются в число от 1 до 31, если 4 и 5 символы преобразуются в число от 1 до 12, если символы от 7 до 10 преобразуются в число то ->5, иначе ->6
5. Закрываем открытый ранее файл. Открываем новый файл с нужным именем, например именем может стать полученная дата
6. Пишем полученную строку в файл и ->2
7. Закрываем файл
В общем я думаю алгоритм достаточно ясен... Парсинг строки не более...
vigo (2004-09-20 13:24:00) [14]дата - некий текст в строке...
Пытаюсь найти текст в строке, содержащую три (АТМ) символа
while not eof(f) do begin
readln(f, s);
if s:= 'like %ATM%' then
{пытаюсь запихнуть эту строку пока в listbox}
then listbox1.Items.Add(s);
Мучаюсь... :-)
Подскажите люди добрая
ssk (2004-09-20 13:04:00) [15]TUser
а Rewrite у меня на корпусе нет. А что это :?)
везет же некоторым! у меня даже Reset'а нет ;-)
TUser (2004-09-20 12:34:00) [16]
> ну еще Reset c Rewrite'ом :-)
Reset я знаю, а Rewrite у меня на корпусе нет. А что это :?)
GuAV (2004-09-20 12:30:00) [17]
> А как именно делать поиск даты?
вобщем, зависит от того что есть дата.
Jeer (2004-09-20 12:06:00) [18]А почитать Pascal ?
vigo (2004-09-20 11:51:00) [19]А как именно делать поиск даты?
(var f: textfile;
...)
Assignfile(f,opendialog.FileName);
reset(f);
while not eof(f) do begin
readln
Пока нет опыта поиска построчно...
ssk (2004-09-20 11:42:00) [20]ну еще Reset c Rewrite'ом :-)