![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Palladin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Пишу программу, осталась последняя не реализованная задача. Собстно в программе необходимо сделать выгрузку в .txt файл
В него записи из таблицы БД переносятся и принимают подобный вид:
(пример выгрузки, ну стркоа сверху, и дальше по тексту, написана тут на форуме и кол-во разделителей не соответсвует истинному значению. Кол-во разделителей равна 3+кол-во дней в месяце+4) кол-во денй в месяце в программе хранится в глобальной переменной day_of_month Как видно точка с запятой является разделителем, первым идет инвентарный номер, потом идет месяц и год, а дальше различные числа или буквы как вещественные, так и целые, тут все норм это я сделал(формируется файил туда все как надо переносится), но в случае если инвентарные номеры одинаковые(а они могут быть одинаковыми) необходимо суммировать две строки, т.е. к примеру у нас в файле(кстати строки в файле отсортированы по инвентарному номеру) встречается:
записатся должно: ....................................... 1819;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0; 1827;07;2009;16.24;16.24;В;18.24;8.16;16.24;16.24;О;18.24;8.16;16.24;16.24;В;18.24;8.16;16.24;16.24;В;18.24;8.16;16.24;16.24;В;18.24;8.16;0;40;90;0; 1837;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0; .............................. Если в двух одинаковых строках, по одному и тому же элементу, в одной строке буква, а в другой цифра, выдать ошибку мол, проверьте корректность ввода данных, но это ясное дело я сам сделаю, никак не удается написать код до конца, алгоритм у меня видать туповат, когда дохожу до середины все в голове перемешивается и все по новой приходится переписывать Вообщем имеем файл file.txt в нем строки как показано выше, если инвентарные номера равны в двух и более строках сложить, то что после 3 точки с запятой, если не равны просто оставить без изменений... Кто поможет с кодом или толковым алгоритмом, получит 3 плюса, а так же мою неимоверную благодарность, запарился уже честно Выкладывать свой код, не буду(ну только если действительно понадобится), т.к. не хочу чтобы вы машинально повторяли мой путь, быть может он ошибочный P.S. трейти день пытаюсь сделать -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
||||
|
|||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
многа букв написал..
попробуй выгружать в более человечный формат csv например или xml -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Нет и еще раз нет, к сожалению выгрузкой пользуется другая программа, которая работает только с .txt и выгрузка должна быть именно такого формата, в постановке задачи это строго указано, такчто...
-------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Palladin, попробуй сам прочитать |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Ладно, пойду ковырятся, если что придумаете пишите, сейчас буду делать так:
парсить строку, забивать элементы в массив потом суммировать... -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
что именно суммировать? |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
2Акелла, ну я то все понимаю=) ок сейчас перепишу какнить...
Вообщем строки что я сдесь в пример привел, взяты не из выгрузки, а я их просто так сказать "от балды" написал, смысл тот же... Добавлено @ 10:15 вообщем до первой точки с запятой идет инвентарный номер, его не суммируем, потом идет месяц, его тоже не суммируем, потом год его тоже не суммируем, остальное все суммируем, если это возможно, в случае если это не возможно выдать ошибку мол проверьте корректно ли введены данные Добавлено @ 10:16 суммируем только те строки в которых инвентарные номера идентичны Это сообщение отредактировал(а) Palladin - 25.5.2009, 10:17 -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Проблема-то в чём? Не получается складывать?
|
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Да замучался просто, последнйи месяц вообще не отдыхаю, уже голова не работает, плюс лень наверное, т.к. после этого куска кода в отпуск... Незнаю, может отупел, вроде все понятно, а начинаю и никак закончить не могу, жесть какаята, первый раз такое...
-------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Может можно всё вставить во временную таблицу, затем суммировать нужные поля с использованием группировки? Может даже без временной таблицы?
|
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
SQL так и не освоил+юзаю ADOTable, а так же как тут проверить возможно ли суммирование? если буква+число надо дать ошибку, если число+ число, надо корректно сложить, ибо вот эти числа 8.12 и т.п. эт восемь часов двенадцать минут, т.е. надо минуты еще аккуратно слаживать и т.п. заморочки...
-------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Если я правильно понял, то, наверное, надо сделать как-то так (если без БД):
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
2CodeMonkey ты монстр, сейчас буду проверять...
-------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Делал на коленке, без компилятора - так что там, скорее всего, ошибки. Просто демонстрация подхода, как можно сделать.
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Palladin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Было пару, не объявленных переменных, но эт мелочи, сейчас стопорюсь на этой строке:
ошибка:
В делфи с динамическими массивами не работал, такчто незнаю как исправить... Добавлено через 9 минут и 31 секунду И функцию SortArray тож если можешь выложи... P.S. наглею... -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |