IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Считывание текстового файла сложной структуры, Работа с файлами
сообщение
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Уважаемые, столкнулся с такой непростой задачкой, как работа с текстовым файлом сложной структуры. Нужно считать с него коды станций, номера платежей, суммы и коды статей. И дату. Желательно в табличку запихнуть для удобства работы. Единственный вариант, который приходит в голову, это построчное считывание и анализ. Подскажите какими методами такое можно провернуть?

Сообщение отредактировано: Atreides -


Прикрепленные файлы
Прикрепленный файл  razsb.txt ( 3.45 килобайт ) Кол-во скачиваний: 290


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Безо всяких регэкспов:
procedure TForm1.ParseClick(Sender: TObject);
var
Lst, Parsed: TStringList;
i: integer;
s: string;
begin
Lst := TStringList.Create;
try
Lst.LoadFromFile('razsb.txt');
for i := 0 to Pred(Lst.Count) do
begin
if Pos('ПО СТАНЦИИ', Lst.Strings[i]) > 0 then
begin
Parsed := TStringList.Create;
ExtractStrings(
['|', ' '], [],
PChar(
StringReplace(
StringReplace(Lst.Strings[i], 'ПО СТАНЦИИ', '', []),
' ', ' ', [rfReplaceAll])
),
Parsed
);
Memo1.Lines.Add(Format('Код: %s, Сумма: %s',
[Parsed.Strings[0], Parsed.Strings[1]]));
Parsed.Free;
end;
end;
finally
Lst.Free;
end;

end;
На твоем файле из первого поста выдает в Memo1 вот такой результат:


Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Atreides   Считывание текстового файла сложной структуры   29.01.2010 0:58
Lapp   вариант, который приходит в голову, это построчное…   29.01.2010 6:59
amega   а что если текстовый файл заменить на екселевкий?   29.01.2010 16:42
Гость   а что если текстовый файл заменить на екселевкий?…   29.01.2010 18:14
Гость   сорри не досмотрел приложение, походу файл прога д…   29.01.2010 18:17
Atreides   Да файл мне прога выкидывает, но не моя и менять я…   29.01.2010 21:56
feniks25   ширина стобцов меняться может? если нет то все упр…   29.01.2010 23:18
Atreides   Да все поля статичны. Ну вот как? Мне только коды …   30.01.2010 2:56
Lapp   Да все поля статичны. Ну вот как? Мне только коды …   30.01.2010 3:16
volvo   Читаешь файл в строку, и в цикле вытягиваешь из не…   30.01.2010 3:17
Atreides   С регулярными там чет все не по-русски :-( как зас…   1.02.2010 18:20
volvo   Безо всяких регэкспов: procedure TForm1.ParseClick…   1.02.2010 19:29
Гость   надо и так попробовать, спасибо. Дату я забрал, пр…   2.02.2010 1:52
Atreides   Клевый код, очень быстро работает. Вот с датой про…   3.02.2010 2:17
Гость   Решил просто перебирать тупо строки и писать в Str…   4.02.2010 0:36
Atreides   Вроде разобрался с заполнение, только из пяти стол…   4.02.2010 12:58
Гость   Разобрался! //загрузка данных в табличку pro…   6.02.2010 1:53
Atreides   Еще один маленький вопросик. Надо в табличку полож…   8.02.2010 22:28
feniks25   напиши сначала StringGrid1.RowCount:=2; а…   18.02.2010 17:03
Atreides   о, щас попробую. Размножаться - это если имя станц…   20.02.2010 3:23


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.05.2024 17:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name