Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.11.2009, 15:53
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
Восклицание Срочно нужна помощь плиз...

Привет народ!
Мне нужна помощь...

Помогите вытащить из текстового файла ифну и вставить ее в 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
Такой вид инфы предоставляет нам оператор связи, и все эту всю инфу надо занести в таблицу...
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
  #2  
Старый 04.11.2009, 17:06
Roman2807 Roman2807 вне форума
Прохожий
 
Регистрация: 29.10.2009
Сообщения: 14
Репутация: 10
По умолчанию

Предлогаю вариант, разбить все на строки, это делается просто, в переменную описанную допучтим stl : Tstringlist; stl.loadfromfile('имя файла') потом из нее последовательно брать по строке, разбивать на нужные участки и заносить в ячейки stringgrid.
Ответить с цитированием
  #3  
Старый 04.11.2009, 17:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А вам это приходит в каком виде?
Бумажном или файликом?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 05.11.2009, 04:48
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
А вам это приходит в каком виде?
Бумажном или файликом?
Это приходит обычным .txt файлом
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
  #5  
Старый 05.11.2009, 04:59
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
По умолчанию

Цитата:
Сообщение от Roman2807
Предлогаю вариант, разбить все на строки, это делается просто, в переменную описанную допучтим stl : Tstringlist; stl.loadfromfile('имя файла') потом из нее последовательно брать по строке, разбивать на нужные участки и заносить в ячейки stringgrid.
Вся сложность в этом действии разбить, дело в том что это динамическая таблица и парсингом щитая пробелы думаю будет не корректно
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
  #6  
Старый 05.11.2009, 07:36
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Выложи сам файл, попробую написать парсер
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #7  
Старый 05.11.2009, 08:55
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rokuell
Выложи сам файл, попробую написать парсер
вот вообщем файл

З.ы. Я его обрезал т.к. он большой
Вложения
Тип файла: txt 1nfo.TXT (15.0 Кбайт, 10 просмотров)
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
  #8  
Старый 05.11.2009, 09:40
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Простой Excel поможет.

Смотрите в сторону функции "=НАЙТИ( ; ; )", "=ЕСЛИ( ; ; )".

Просто тут не такая задача, для решения которой нужна среда программирования.

Например, я только что, за 6 минут в Excel-e разбил этот файл по столбцам.
И это при том что писал все с "нуля". При готовом шаблоне все гораздо проще.

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

Последний раз редактировалось Konrad, 05.11.2009 в 10:00.
Ответить с цитированием
  #9  
Старый 05.11.2009, 19:41
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
Сообщение

Написал парсер, вроде работает - потести ещё на полном файле.

Исходник исправлен 8:00 06.11.09
Вложения
Тип файла: rar Parser v2.rar (15.1 Кбайт, 9 просмотров)
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887

Последний раз редактировалось Rokuell, 06.11.2009 в 08:00.
Ответить с цитированием
  #10  
Старый 06.11.2009, 05:05
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
По умолчанию

Цитата:
Сообщение от Konrad
Простой Excel поможет.

Смотрите в сторону функции "=НАЙТИ( ; ; )", "=ЕСЛИ( ; ; )".

Просто тут не такая задача, для решения которой нужна среда программирования.

Например, я только что, за 6 минут в Excel-e разбил этот файл по столбцам.
И это при том что писал все с "нуля". При готовом шаблоне все гораздо проще.

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


Блин я в Екселе не силен...а не мог бы ты скинуть примерчик как это делается?

+1 За решение!
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
  #11  
Старый 06.11.2009, 05:13
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rokuell
Написал парсер, вроде работает - потести ещё на полном файле.
Большое спасибо!
Но у меня возникла проблемка при компиляции выводит
[Fatal Error] CallsParser.pas(264): Internal error: C1448

Что Это за ошибка я так и не понял "гуглил гуглил" и вообщем резултат нни какой что делать и как ее исправить?
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
  #12  
Старый 06.11.2009, 07:03
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
По умолчанию

Цитата:
Сообщение от r1x
Большое спасибо!
Но у меня возникла проблемка при компиляции выводит
[Fatal Error] CallsParser.pas(264): Internal error: C1448

Что Это за ошибка я так и не понял "гуглил гуглил" и вообщем резултат нни какой что делать и как ее исправить?

Sorry, код правельный большое спасибо, это ошибка в делфи была...
но возникла вообщем другая проблемка...При загрузки говорит "Не допустимый индекс массива"...
Вообщем вот полный файл...
Вложения
Тип файла: rar INFO.rar (5.2 Кбайт, 6 просмотров)
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ

Последний раз редактировалось r1x, 06.11.2009 в 07:25.
Ответить с цитированием
  #13  
Старый 06.11.2009, 08:02
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

Пляски с бубном
Ошибка возникала в коде:
Код:
function TCallsParser.getCallRec(index: integer): TCallRec;
begin
 if index in [0..FCallsCnt-1] then Result := FCalls[index]
 else raise EParserError.Create('Недопустимый индекс массива');
end;
При попытке обратиться к 117 элементу массива при размере массива 629
Бред

Чтобы работало, достаточно немного изменить:
Код:
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;

Исправленный исходник в предыдущем сообщении.
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #14  
Старый 06.11.2009, 09:26
Аватар для r1x
r1x r1x вне форума
Начинающий
 
Регистрация: 15.07.2009
Адрес: KZ, Pavlodar
Сообщения: 110
Репутация: 10
Хорошо

Rokuell
Большое тебе спасибо за проявленую помощь
__________________
[ iNewStar.Ru ] - Продам!
Вопросы в ПМ
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter