![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
Кому не лень просмотреть прогу, помогите разобраться.
Прога при активации выводит данные из файла в СтрингГрид (6 х 50 ячеек), а по щелчку на кнопке Сохранить сохраняет их. Но она то не то выводит, то вообще не выводит:
--------------------
|
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
МЛЯ, СПАСИБО ВСЕМ ЗА ДРУЖНЫЙ ОТВЕТ! ВСЕ С ВАМИ ПОНЯТНО
--------------------
|
|||
|
||||
| EKoshelev |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 509 Регистрация: 1.9.2004 Репутация: нет Всего: нет |
Короче, тема такая. Ты ошибся, когда написал, что она их сохраняет. Если файл не был создан, то прога его создаёт. А если он уже есть, то она сверху не пишет. Я когда гонял твой код у меня С: в проводнике сидел и когда я сохранял то файл этот оставался на своём месте, а когда он перезаписывается то оказывается внизу списка в проводнике. Догнал? Короче не сохраняет.
Я в директивах типа {$I-} не рублю, но мне кажется, что дело в них. Я их никогда не юзаю и у меня пожизни поверх пишется без вопросов. -------------------- Вежливым и адекватным предлагаю общаться на "ты". |
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
Хм.. ща буду разбираться, а {$I-} ... {$I+} - это что-то вроде прога берет на себя ответственность за ошибки между этими командами, тойсь винда не выдает сообщ. об ошибке. Если IOResult <> 0, то значит ошибки есть...
Это сообщение отредактировал(а) _Slipknot - 2.9.2004, 22:54 --------------------
|
|||
|
||||
| Messages |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 26.3.2004 Репутация: нет Всего: нет |
Лучше всего будет убрать директивы {I} и использовать try...except и try...finallity (вроде так). В хелпе про них много есть!
А вообше, ты выключаешь сообщения об ошибках (этой самой {I-}), создаешь чего-то и спрашиваешь код ошибки. Это маразм!!!!! Еще. Зачем тебе тип 1..5 используй Byte все равно и то и другое по байту! И "нуль" можешь использовать, как "в ячейке нет ничего". |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 1 Всего: 7 |
Ничего это не маразм! Только если уж используешь {$I-}, то делай это на всю процедуру ввода-вывода и после каждого ввода-вывода проверяй IOresult A так все правильно кажется делается, просто с самого первого взляда бросается в глага, что запись и чтение файла начинаются с текущей позиции (после первого чтения - это конец файла). Попробуй поставить перед Read и Write - FileSeek (f, 0); И не забудь закрыть файл после работы с ним.... Это сообщение отредактировал(а) Dimich - 3.9.2004, 07:43 --------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| decoder |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 18.5.2004 Где: Харьков(хохол, к сожалению) Репутация: нет Всего: -1 |
Попробуй вместо file of TRecord использовать TextFile и записуй туда поля своего TRecord...
И ещё: у меня глюк был, не помню, чё произошло, но суть в том, что цикл Фор без бегин и енд не инициализировался, хотя в теле была всего одна операция... С директивой {$I} у тебя всё правильно. Ещё один совет: Ф7. Добавлено @ 15:33 к стати, Dimich правильно сказал
Скорее всего в этом дело... --------------------
Молчать, я вас спрашиваю! |
|||
|
||||
| Underdark |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 12.7.2004 Где: Ульяновск Репутация: 1 Всего: 2 |
Молодец, Dimich!!!
Отлично про всё сказал! _Slipknot, такой вопросик, а что конкретно програмулина неправильно выводит в Грид? И ещё, не делай так:
С этим у тебя все в порядке... |
|||
|
||||
| RA |
|
|||
![]() Брутальный буратина ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3497 Регистрация: 31.3.2002 Где: Лес Репутация: 14 Всего: 115 |
Надобы добавить
|
|||
|
||||
| Code Magister |
|
|||
![]() Magister of Code ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 9.7.2004 Где: Kiev Репутация: нет Всего: 1 |
Выводит только значение первой переменной массива, а после еще нескольких нажатий кнопки "Обновить"(код которой равен коду FormActivate) выводит еще значения и то неправильные =) Но мне тут уже столько написали, за что всем спасибо, что, надеюсь, теперь я разберусь. Это сообщение отредактировал(а) _Slipknot - 9.9.2004, 15:24 --------------------
|
|||
|
||||
| Underdark |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 12.7.2004 Где: Ульяновск Репутация: 1 Всего: 2 |
Пока ещё не понял почему у тебя такая фиговина, но кажется энто всё из-за неправильного сохранения.
Единственное, ещё может ты перепутал строки и колонки в самом массиве при сохранении, но это навряд ли... Удачи! |
|||
|
||||
| Конструктор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 641 Регистрация: 12.5.2004 Где: Москва Репутация: нет Всего: 10 |
А не проще ли сохранять данные в текстовый файл записывая в него собственно строки из StringGrid? Последовательно записать, потом последовательно считать.
|
|||
|
||||
![]()
|
| Правила форума "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. |