файлы+динамическая память, использование дин. памяти при работе с несколькими файлами |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
файлы+динамическая память, использование дин. памяти при работе с несколькими файлами |
Renbo |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Имеется 2 файла справочника и один файлик основной. Необходимо сформировать ведомости. Первая ведомость формируется как надо, тоесть как мне надо ). А вот вторая в последнем столбике Количество Струдников не прописывает их количество. Код написан, вроде должно работать, а не тут-то было. Вот в этом файле
Vedomosti.pas ( 12.69 килобайт )
Кол-во скачиваний: 694
- процедуры по формированию ведомостей. spravka1.txt ( 229 байт ) Кол-во скачиваний: 492 - первый справочник(текстовый). ___________________2.rar ( 541 байт ) Кол-во скачиваний: 380 - основной фаил и второй справочник(оба они типизированные). Но может вы и без этого увидите как исправить процедуру по созданию второй ведомости. Заранее благодарен. Сообщение отредактировано: Renbo - |
volvo |
Сообщение
#2
|
Гость |
Цитата Как мне его вам тут выложить? Заархивировать все вместе? |
Renbo |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
всё-всё, выложил все необходимые файлы.
Теперь можешь смотреть Я понял кажется в чём ошибка, но как устранить...что-то не соображу...
Сообщение отредактировано: Renbo - |
volvo |
Сообщение
#4
|
Гость |
Цитата он собой представляет 1 запись всего, как я понимаю... А чего ты гадаешь? Возьми отладчиком и посмотри, сколько элементов пишутся в массив X (чему равно K после его заполнения)... Все ТАМ нормально...Плохо вот здесь: For i:=1 to t doи чуть ниже то же самое... |
Renbo |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
так вроде когда я вылетаю - то он сравнивает с NIL, а нилу он не равен и действия выполняются...
Ты записускал её с фалами со всеми? видел что во второй ведомости? только в последнюю строчку добавляется кол-во сотрудников почему-то... |
volvo |
Сообщение
#6
|
Гость |
Да не могу я ее запускать... Нет у меня кириллицы, в 16-битных приложениях, сколько раз повторять... Толку то, что я запущу... Я ж результат проверить не могу!
Цитата так вроде когда я вылетаю - то он сравнивает с NIL Когда ты обращаешься ЗА пределы памяти, это уже ошибка... В любом нормальном компиляторе это карается Access Violation... А потом, кто тебе сказал, что там nil? Локальная переменная, да еще и динамическая... Мусор там скорее всего, а не nil... |
Renbo |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
|
Renbo |
Сообщение
#8
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
вообщем условие изменилось. В массив x нужна писать в поле x^[i].CODEOTDELA z^[i].CodeOTD, а в поле x^[i].TAB количество идущх подряд записей z^[i], начинающихся на одинаковый код отдела
причём реализовано должно быть так: если вы массиве Z у нас: 01 *.... 01 *.... 02 *.... 03 *... 03 *... 03 *... То в массив X записаться должно так: 01 * 2 02 * 1 03 * 3 Что-то я не понимаю как организовать цикл, при этом не выходя за границы памяти выделенной под массив Z... |
volvo |
Сообщение
#9
|
Гость |
Цитата Что-то я не понимаю как организовать цикл, при этом не выходя за границы памяти выделенной под массив Z... const Идея понятна? Добавлено через 1 мин. А вообще-то, по-хорошему, тебе бы надо пересмотреть структуру программы... Сообщение отредактировано: volvo - |
Renbo |
Сообщение
#10
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Да, спасиб, всё ясно стало
Токо вот теоритически алгорит правельный, а считает не то почему-то... - вот тут первый столбик - это рассчпечатка z[i].CodeOTD, а второй, ниже, там где через двоеточие, это сформировавшийся массив X. Как видно - считает почему-то не то....Не понимаю...
Что не так-то? Сообщение отредактировано: Renbo - |
volvo |
Сообщение
#11
|
Гость |
Значится, так... Первое, что тебе надо было сделать (я совсем забыл тебе сказать) - это во всех структурах поменять простой string на string[255]... У меня, например, под FPC, это играет решающую роль - без этого не работает, а с изменением - на ура... Попробуй...
|
volvo |
Сообщение
#12
|
Гость |
Цитата Что не так-то? Только что заметил:For i:=1 to k do Чувствуешь разницу? |
Renbo |
Сообщение
#13
|
Пионер Группа: Пользователи Сообщений: 86 Пол: Мужской Репутация: 0 |
Щет!!! ))
несколько дней искал в чём трабла, а тут даж не замечал Надо завязывать с учёбой , даёшь выходные после завершения лабораторки СПасиб тебе огромнейшее )) Сообщение отредактировано: Renbo - |
Текстовая версия | 11.01.2025 5:28 |