Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Резка txt файла...   Найти похожие ветки 

 
vigo   (2004-09-20 10:56) [0]

Народ, подскажите как лучше сделать программу, которая "резала" бы текстовый файл на несколько файлов по дате: Текстовый файл содержит дату и после неё текст; затем дата, текст и т.д. (Сколько дат - столько файлов).


 
TUser ©   (2004-09-20 10:57) [1]

TStringList + код, который определит, что в данной строке есть именно дата.


 
ssk ©   (2004-09-20 11:40) [2]

TStringList здесь не нужен. достаточно Readln, Writeln, AssignFile и CloseFile.


 
ssk ©   (2004-09-20 11:42) [3]

ну еще Reset c Rewrite"ом :-)


 
vigo   (2004-09-20 11:51) [4]

А как именно делать поиск даты?
(var f: textfile;
...)
Assignfile(f,opendialog.FileName);
reset(f);
while not eof(f) do begin
readln
Пока нет опыта поиска построчно...


 
Jeer ©   (2004-09-20 12:06) [5]

А почитать Pascal ?


 
GuAV ©   (2004-09-20 12:30) [6]


> А как именно делать поиск даты?

вобщем, зависит от того что есть дата.


 
TUser ©   (2004-09-20 12:34) [7]


> ну еще Reset c Rewrite"ом :-)

Reset я знаю, а Rewrite у меня на корпусе нет. А что это :?)


 
ssk ©   (2004-09-20 13:04) [8]

TUser
а Rewrite у меня на корпусе нет. А что это :?)


везет же некоторым! у меня даже Reset"а нет ;-)


 
vigo   (2004-09-20 13:24) [9]

дата - некий текст в строке...
Пытаюсь найти текст в строке, содержащую три (АТМ) символа
while not eof(f) do begin
readln(f, s);
if s:= "like %ATM%" then
{пытаюсь запихнуть эту строку пока в listbox}
then listbox1.Items.Add(s);
Мучаюсь... :-)
Подскажите люди добрая


 
П7   (2004-09-20 13:58) [10]

У тебя внутренности текстового файла хоть как-то структурированы или навалены в одну большую кучу без пробелов и переходов строк?
Дата в каком формате задаётся?
Например еслиу тебя каждая новая дата идёт с новой строки и имеет формат "%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 14:13) [11]

Прошу прощения ищу не дату, а символосочетание "АТМ" в строке. Сам текст представляет что-то вроде кучи похожих друг на друга таблиц следующих друг за другом. Пытаюсь в строке найти это символосочетание "АТМ", следующие несколько строк представляют собой нужную таблицу.
(извиняюсь за смутные объяснения...)


 
TUser ©   (2004-09-20 14:19) [12]


> if s:= "like %ATM%" then

Вот это адназначно - переписать. Тут тебе не sql


 
vigo   (2004-09-20 14:38) [13]

подскажите как найти искомые символы в строке...?
заранее спасибо!


 
Amoeba ©   (2004-09-20 14:41) [14]

Pos + F1


 
TUser ©   (2004-09-20 15:16) [15]

if not (pos() = 0) then
if pos <> 0 then


 
alless   (2004-09-20 15:29) [16]

Дайте чясть файла, посмотреть что и как там написаны данные


 
vigo   (2004-09-20 15:45) [17]

{строка - 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
... и т.п.


 
ssk ©   (2004-09-20 15:48) [18]

ну и где здесь даты?


 
vigo   (2004-09-20 15:53) [19]

ищу не дату, а символосочетание "АТМ" в строке


 
ssk ©   (2004-09-20 15:58) [20]

а это что? ты сам в вопросе написал:

как лучше сделать программу, которая "резала" бы текстовый файл на несколько файлов по дате: Текстовый файл содержит дату и после неё текст;


 
vigo   (2004-09-20 16:06) [21]

ладно... буду сам мучаться


 
Anatoly Podgoretsky ©   (2004-09-20 16:11) [22]

А ты прочитал советы выше, другие вряд ли будут, поскольку этих достаточно, можно конечно написать свои функции поиска подстроки, но зачем.



Страницы: 1 вся ветка

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.053 c
4-1093079315
Arnold
2004-08-21 13:08
2004.10.03
Как узнать количество запущенных процессов???


4-1093237731
Станислав
2004-08-23 09:08
2004.10.03
sendkeys


4-1092904900
Анатолий
2004-08-19 12:41
2004.10.03
Диалог дл я выбора директории


1-1095584626
AdmeraL
2004-09-19 13:03
2004.10.03
копирование фойлов при помощи объектов


1-1095682967
Zhekson
2004-09-20 16:22
2004.10.03
InputQuery или как реагировать на кнопки Ok и Cancel