![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| 6Apokali6sis6 |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Так. Пытаюсь сохранить три массива в 3 файла. Причём Сохранение происходит, затем файлы закрываеются, а затем еси пользователь хочет ввести ещё данные(прога-телефонная книга) то файлы снова откр, соххр, и закр. Вот фрагмент кода реализующий сохранение:
В основной части проги написано:
В ходе самой программы в файлы судя по всему ничего не записывается, так как до завершения оной при поиске, ничего не происходит. Поиск реализован вот так:
При компиляции ошибок в синтаксисе не находит но при работе программы при нажатии на кнопочку найти(описание выше) выдаёт вот это: Failed with message:'access violation at 0x0040664d: write of adress 0x00030f2c'.Process stoped. Прошу помощи. Заранее благодарен Ap{}k@lipsis. |
||||||
|
|||||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Почему ты читаешь в a[i] {read(t,a[i]);строка 11}, т.е. по сути в a[0], т.к. i ничего не присвоено, а ищешь потом по a[nomer], строка 16 (т.е. по сути по a[0]...a[100])? И еще: как обьявлены a и t?
PS. Лучше выложи проект. PPS Лучше, для этой задачи, используй базу данных -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| 6Apokali6sis6 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
a:array[1..100] of char;
t:TextFile; посему слегка подкорректировал код:
но это не помогает, тпомоему проблема не в чтении из файла а в записи в него. Или я не прав. З.Ы. Базы данных не использую для решения данной задачи принципиально. Меня интерисует именно такое решения и никак иначе. К тому-же так сложнее, а соответсвенно интересней. |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
А какого типа у тебя файлы?
-------------------- Ll 2 |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
на какой строчке вылетает ошибка? -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| 6Apokali6sis6 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
Файлы вроде тип txt!
Как понять на какой строчке? Ошибка вылетает не ри компиляции а при работе проги в окошечке под названием CPU. В разделе LoadResString на строчке: 0040664D push $00000400 |
|||
|
||||
| Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
{вырезано, прошу прощения недосмотрел}
смысл этих операций вообще не понятен.... зачем в пустую их гоняешь? пошаговая отладка или через точки останова... с их помощью всё вычисляется... Это сообщение отредактировал(а) Albinos_x - 2.4.2006, 14:37 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Гы. Там все нормально. Закрывается после цикла. -------------------- Ll 2 |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
уже удалил... недосмотрел begin Добавлено @ 14:44
имею ввиду, что переменная с у тебя нигде не инициализирована.... т.е. по умолчанию скорее всего равна нулю... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
| Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
уверен, что у тебя там в строке 100 символов? проще и даже наверно целесообразней использовать:
в результате выполняется не 201 операция, а 2-4... кроме того избегаем ошибки если строка меньше 100 символов.... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Не понимаю, зачем париться с тремя массивами????
а лучше:
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
условие внутри цикла всегда будет false, т.к. сравниваешь стоку с символом...
переменная С последний является индексом последнего элемента (предпологаю, т.к. они не инициализирована и равна 0), зачем тебе в Edit4.Text последний симол массива? к тому же если С:=0 то ты обращаешся к несуществующему элементу массива... оттуда и ошибка... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
| 6Apokali6sis6 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 21.12.2005 Репутация: нет Всего: нет |
хм...всегда фолс? а как тогда срвнить значение стоящее в a[i]? Ведь там не один символ, а слово. Вот нужно енто слово сравнить с тем, что находится в Эдит1Текст. З.Ы Я бы сделал из записей, но там с сохранением у меня ещё туже чем здесь(хотя куда уж туже |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
Запись и чтение из файла массива записей
Чтение аналогично. Количество записей можно хранить в файле настройки, например. Всё же проще, чем с текстовыми файлами (к тому же с тремя) и его никто, кроме твоей проги, не прочитает. Будут вопросы, пиши. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
![]()
|
| Правила форума "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. |