|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
||||||
Программирование кнопки удаления записи25.09.2011, 22:29. Показов 5592. Ответов 33
Метки нет (Все метки)
P.S А какую позицию принимает pos если файл пуст? Считывание файла начинается с 0 позиции? Добавлено через 5 часов 30 минут Поможет кто?
0
|
||||||
| 25.09.2011, 22:29 | |
|
Ответы с готовыми решениями:
33
Создание в таблице кнопки удаления записи из БД Применение кнопки удаления записи в подчинённых формах |
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 27.09.2011, 22:16 [ТС] | |
|
Огромное спасибо.
Вы только кнопку удаления довели до ума?Больше ничего другого в теле программы не меняли ? Добавлено через 5 минут А вот запись Truncate(NoteFile) означает,что содержимое файла очистится ? Я просто немного не понимаю,принцип использования этой команды...
0
|
|
|
Заблокирован
|
||
| 27.09.2011, 22:16 | ||
|
Отформатировал текст и поменял кнопку сохранения. Сравните код...
Добавлено через 31 секунду
1
|
||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
||||||
| 27.09.2011, 22:24 [ТС] | ||||||
0
|
||||||
|
Заблокирован
|
||||||
| 27.09.2011, 22:34 | ||||||
|
Немного не так
1
|
||||||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 27.09.2011, 22:52 [ТС] | |
|
Спс,вроде более менее понятно
P.S а зачем вот это использовать Truncate(NoteFile); ? Вроде перезапись произошла строкой выше
0
|
|
|
Заблокирован
|
||
| 27.09.2011, 22:59 | ||
0
|
||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
||||||
| 28.09.2011, 19:41 [ТС] | ||||||
|
Спс за разъяснения ,вроде уже максимально все понял .
Добавлено через 1 час 15 минут Хотя есть один вопрос,а почему конец файла равен FileSize-1 ?Ведь просто FileSize это уже конец файла вроде как... Добавлено через 6 минут
0
|
||||||
|
Заблокирован
|
|||||||||||
| 28.09.2011, 21:31 | |||||||||||
|
Кнопка "Следующая запись" доступна тогда, когда есть куда передвигаться... Pos хранит позицию начала текущей записи (т.е. для 1 записи Pos = 0). Например у нас 3 записи. Текущая = 2. Тогда Pos = 1; FileSize - 1 = 2; Все нормально, 1 < 2, дальше можем двигаться. Теперь у нас текущая запись = 3, т.е. последняя... Pos равен 2, FileSize - 1 тоже равен 2. Условие 2 < 2 не соблюдается, т.е. двигаться дальше мы не можем... Вот и все.
А FileSize - 1 потому что, как описано выше, у нас Pos всегда на единицу меньше текущей записи. А для чего Pos меньше текущей записи? Для того, чтобы текущую запись можно было перечитать или сразу записать, не передвигаясь по файлу... Уффффф... многа букав ![]() Добавлено через 8 минут Button2.Enabled := (Pos < FileSize(NoteFile) - 1); Что тут происходит при выполнении программы? Сначала вычислится правая часть выражения - (Pos < FileSize(NoteFile) - 1). Результат будет логической переменной, и положится куда-то во временную переменную. Потом значение этой переменной присвоится свойству Enabled кнопки Button2. Есть еще пару вариантов этой записи, но мне нравится больше так. 1.
Но, согласитесь, написанный вариант все-таки кошернее
1
|
|||||||||||
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 28.09.2011, 22:01 [ТС] | |
|
Спасибо
Добавлено через 20 минут Про кнопки все ясно. Насчет FilePos-1 ,допустим имеем мы 3 записи ,надо перезаписать или прочитать какую-то запись . В чем будут отличия если Pos будет равна текущей записи и если позиция будет на 1 меньше текущей записи ? P.S Сорри за многократные вопрос)Просто я в колледже мало практических занятий было по работе со строками и файлами=(
0
|
|
|
Заблокирован
|
|
| 28.09.2011, 22:16 | |
|
В принципе - разницы нет. Просто надо сразу решить, как будет хранится Pos, меньше на единицу или нет. Просто для Вашего промера мне было удобнее Pos-1, дабы при записи не двигаться никуда. Просто личное предпочтение, и только
1
|
|
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
||
| 28.09.2011, 22:44 [ТС] | ||
|
Добавлено через 2 минуты Кстати,а почему в программе не работает IOResult? Пытался сделать,что бы при возникновении ошибки высвечивалось сообщение,но при нажатии F9 пишется ошибка,что (На анг не помню),что не безопасно использовать IoResult в записи...
0
|
||
|
Заблокирован
|
|
| 28.09.2011, 23:14 | |
|
Ну чтобы при записи не высчитывать Pos - а сразу сделать Seek(NoteFile, Pos)... Хотя можно и написать Seek(NoteFile, Pos-1). Блин! Не забивай голову! Помнишь ту сороконожку, которую спросили, как она двигается, сначала четные ноги, а потом нечетные? Так вот, она задумалась и больше не смогла ползать
Короче удобнее мне так!!!А IOResult - возвращает результат последней операции ввода/вывода, конкретно тебя интересуют операции с файлами. Но для ее работы должна быть выключена проверка ввода/вывода (опция компилятора {$I-}). Если IOResult вернул 0 - значит последняя операция ввода/вывода завершилась удачно. Иначе - получишь код ошибки. Но лучше его не использовать и использовать обработку исключительных ситуаций при включенной опции компилятора ({$I+}). Вроде так... Если нет, поправьте...
1
|
|
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
| 29.09.2011, 17:51 [ТС] | |
|
Ну в данном коде,да записи 1 соответствует позиция 0 .А если допустим переписать ,так что бы позиции 1 была бы равна запись 1,ничего не поменяется?
0
|
|
|
Заблокирован
|
|
| 29.09.2011, 23:00 | |
|
Тогда везде, где используется Pos (при перемещении по файлу, при записи) надо поменять Pos на Pos - 1. Вот и все, что поменяется...
1
|
|
| 29.09.2011, 23:00 | |
|
Как создать диалоговое окно QDialog, а в нем QTreeView (содержит таблицу из БД) + Кнопки добавления и удаления записи в дереве(через QPushButton) Создание триггера до удаления записи и триггера после удаления записи
Некорректная работа кнопки удаления на сайте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|