![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Привет народ!
Мне нужна помощь... Помогите вытащить из текстового файла ифну и вставить ее в StringGird Вот тот самый текст Код:
л/с 1004147 КГП НА ПРАВЕ ХОЗЯЙСТВЕННОГО ВЕДЕНИЯ "ИНФОРМАЦИОННО-ТЕХНИЧЕСКИЙ СЕРВИС"
Все начисления за Июль 2009 г.
Тел.| Дата/время вызова |Направление |Код Телефон| Длит.|Стоимость
--------------------------------------------------------------------------------------------
авт 100796 01.06.2009 HDSL 3 Gb HDSL 3 Gb 4835 670834,98
авт 100796 01.07.2009 HDSL 3 Gb HDSL 3 Gb 4702 652381,81
100796 Кол-во разговоров: 2 минут: 0 Всего на сумму1323216,79
авт 321680 01.07.2009 09.33.07 СОТОВАЯ СВЯЗЬ GSM 777 1223331 00:40 25,51
авт 321680 01.07.2009 10.13.57 СОТОВАЯ СВЯЗЬ GSM 777 1223331 04:40 178,54
авт 321680 01.07.2009 12.16.01 СОТОВАЯ СВЯЗЬ GSM 777 1223331 00:40 25,51
авт 321680 02.07.2009 12.45.36 СОТОВАЯ СВЯЗЬ GSM 777 1223331 00:50 31,88
авт 321680 02.07.2009 18.29.48 СОТОВАЯ СВЯЗЬ GSM 777 1223331 01:50 70,14
авт 321680 03.07.2009 10.54.23 СОТОВАЯ СВЯЗЬ GSM 777 1223331 01:20 51,01
авт 321680 03.07.2009 12.54.20 СОТОВАЯ СВЯЗЬ GSM 705 1223331 01:00 38,26
авт 321680 09.07.2009 16.01.29 СОТОВАЯ СВЯЗЬ GSM 777 1223331 00:50 31,88
авт 321680 09.07.2009 16.48.18 СОТОВАЯ СВЯЗЬ GSM 701 1223331 00:20 12,75
авт 321680 09.07.2009 17.40.50 КОКТОБЕ 71838 91162 00:10 3,03
авт 321680 09.07.2009 18.03.13 АКСУ 71837 50324 00:20 6,06
авт 321680 09.07.2009 18.34.27 АЛМАТЫ 727 2738278 23:30 657,74
авт 321680 09.07.2009 19.04.52 СОТОВАЯ СВЯЗЬ GSM 701 7237799 04:20 165,79
авт 321680 10.07.2009 09.43.35 СОТОВАЯ СВЯЗЬ GSM 777 3145696 02:10 82,89
авт 321680 13.07.2009 15.04.11 СОТОВАЯ СВЯЗЬ GSM 701 7543695 01:10 44,64
авт 321680 13.07.2009 15.15.04 АСТАНА 717 2741148 02:10 73,49
авт 329010 31.07.2009 16.39.07 СОТОВАЯ СВЯЗЬ GSM 701 5664703 01:10 44,64
авт 329010 31.07.2009 17.25.40 СОТОВАЯ СВЯЗЬ GSM 777 3145696 00:30 19,13
329010 Кол-во разговоров: 133 минут: 132 Всего на сумму 4781,26
Итого : Разговоров: 629 Общей продолжительностью (минут): 836 На сумму: 1352538,57![]() |
|
#2
|
|||
|
|||
|
Предлогаю вариант, разбить все на строки, это делается просто, в переменную описанную допучтим stl : Tstringlist; stl.loadfromfile('имя файла') потом из нее последовательно брать по строке, разбивать на нужные участки и заносить в ячейки stringgrid.
|
|
#3
|
||||
|
||||
|
А вам это приходит в каком виде?
Бумажном или файликом? |
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
||||
|
||||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Выложи сам файл, попробую написать парсер
|
|
#7
|
||||
|
||||
|
Цитата:
З.ы. Я его обрезал т.к. он большой |
|
#8
|
||||
|
||||
|
Простой Excel поможет.
Смотрите в сторону функции "=НАЙТИ( ; ; )", "=ЕСЛИ( ; ; )". Просто тут не такая задача, для решения которой нужна среда программирования. Например, я только что, за 6 минут в Excel-e разбил этот файл по столбцам. И это при том что писал все с "нуля". При готовом шаблоне все гораздо проще. И кстати если прослеживаеться четкая структура данных, можно воспользоваться специальными функциями их обработки 2 кликами мыши ![]() Последний раз редактировалось Konrad, 05.11.2009 в 10:00. |
|
#9
|
||||
|
||||
|
Написал парсер, вроде работает - потести ещё на полном файле.
Исходник исправлен 8:00 06.11.09 Последний раз редактировалось Rokuell, 06.11.2009 в 08:00. |
|
#10
|
||||
|
||||
|
Цитата:
Блин я в Екселе не силен...а не мог бы ты скинуть примерчик как это делается? +1 За решение! |
|
#11
|
||||
|
||||
|
Цитата:
Но у меня возникла проблемка при компиляции выводит [Fatal Error] CallsParser.pas(264): Internal error: C1448 Что Это за ошибка я так и не понял "гуглил гуглил" и вообщем резултат нни какой что делать и как ее исправить? |
|
#12
|
||||
|
||||
|
Цитата:
Sorry, код правельный большое спасибо, это ошибка в делфи была... но возникла вообщем другая проблемка...При загрузки говорит "Не допустимый индекс массива"... Вообщем вот полный файл... Последний раз редактировалось r1x, 06.11.2009 в 07:25. |
|
#13
|
||||
|
||||
|
Пляски с бубном
![]() Ошибка возникала в коде: Код:
function TCallsParser.getCallRec(index: integer): TCallRec;
begin
if index in [0..FCallsCnt-1] then Result := FCalls[index]
else raise EParserError.Create('Недопустимый индекс массива');
end;Бред ![]() Чтобы работало, достаточно немного изменить: Код:
function TCallsParser.getCallRec(index: integer): TCallRec;
begin
if (index >= 0) and (index <= High(FCalls)) then
Result := FCalls[index]
else
raise EParserError.Create('Недопустимый индекс массива'#13#10'Индекс = '+IntToStr(index)+#13#10'Допустимые значения = [0..'+IntToStr(FCallsCnt-1)+']');
end;Исправленный исходник в предыдущем сообщении. |
|
#14
|
||||
|
||||
|
Rokuell
Большое тебе спасибо за проявленую помощь |