Конференция "Начинающим" » Что использовать вместо RECORD?
 
  • art36 © (24.03.08 18:42) [0]
    Есть неудобный способ хранить записи в типизированном файле:

    var
    F:file of Tmytype
    a: Tmytype

    Но при этом ужасно неудобно удалять и записывать записи в этом файле.

    Какая альтернатива есть? Чтоб все было в одном файле, и процедуры обработки чтения, удаления, записи, изменения были удобными?

    Если есть ссылку в инете дайте, пожалста!
  • Reindeer Moss Eater © (24.03.08 18:44) [1]
    xml
  • art36 © (24.03.08 18:45) [2]

    > xml

    Как?
  • Reindeer Moss Eater © (24.03.08 18:46) [3]
    Как?
    Очень легко и даже приятно.
  • art36 © (24.03.08 18:47) [4]

    > Очень легко и даже приятно.

    (( я понятия не имею как им пользоваться
  • Reindeer Moss Eater © (24.03.08 18:50) [5]
    ну тогда оставайся на типизированных файлах.
  • art36 © (24.03.08 18:55) [6]

    > ну тогда оставайся на типизированных файлах.

    ну уж нет... у него избыточный код, есть что-нибудь еще?
  • Семеныч (24.03.08 19:10) [7]
    Зависит от того, что Вы называете удобным и неудобным. Например, вместо записей можно использовать объекты, а файл читать в их список (потомок TObjectList) и писать из этого же списка. Тогда весь вопрос сводится к написанию 2-х простых методов списка - чтение и запись файла (формат файла: перваые 4 байта - количество элементов, далее сами элементы).

    После чего запись и чтение файла, а также работа с самим списком и его объектами (добавление, удаление, изменение, поиск и т.п.) становятся очень простыми и удобными. Так что вопрос лишь в том, удобна ли для Вас сама эта схема.
  • Reindeer Moss Eater © (24.03.08 19:14) [8]
    Поиск нужного объекта в таком файле будет особенно удобен.
  • Семеныч (24.03.08 19:18) [9]
    > Reindeer Moss Eater ©   (24.03.08 19:14) [8]

    На всякий случай: в файлах объекты не ищут. В файлах вообще ничего не ищут. Файлы читают и пишут, а ищут - в памяти.

    И при этом без разницы, что содержит файл - объекты, записи, просто числа или что угодно еще.
  • Reindeer Moss Eater © (24.03.08 19:20) [10]
    да да конечно. и не ищут в файлах ничего и никогда.
  • Kolan © (24.03.08 19:22) [11]
    Прочитай про сериализацию, используй объекты и сериализуй их стандартными методами…
  • Reindeer Moss Eater © (24.03.08 19:23) [12]
    Будет та же хрень что и с типизированными файлами.
    С точностью до миллиметра.
  • Kolan © (24.03.08 19:23) [13]
    Кстати, а как на счет БД?
  • Reindeer Moss Eater © (24.03.08 19:26) [14]
    Причем чел поимеет реальный гемор при перезаписывании экземпляра находящегося посреди файла.
    Если раньше ему достаточно было переписать кусок размером SizeOf(рекорд), то с переходом на объекты, это уже не прокатит.
  • Johnmen © (24.03.08 19:27) [15]
    Да простой ClientDataSet.
  • Семеныч (24.03.08 19:27) [16]
    > Reindeer Moss Eater ©   (24.03.08 19:20) [10]

    Можете привести пример поиска в файле?

    Если можете - приведите. А я Вам тут же докажу, что это поиск НЕ в файле, а в памяти.

    Даже если весь поиск сводится к одному сравнению, то это сравнение все равно производится в памяти. А файлы только читают и пишут.
  • Reindeer Moss Eater © (24.03.08 19:29) [17]
    Семеныч, вы предлагаете заменить шило на мыло. Причем с гребанием новых граблей.
  • Семеныч (24.03.08 19:31) [18]
    > Reindeer Moss Eater ©   (24.03.08 19:26) [14]

    > Причем чел поимеет реальный гемор при перезаписывании экземпляра
    > находящегося посреди файла. Если раньше ему достаточно было
    > переписать кусок размером SizeOf(рекорд), то с переходом на объекты,
    > это уже не прокатит.

    Если раньше было достаточно переписать кусок размером SizeOf(рекорд), то это означает, что указателей пресловутый рекорд не содержит - и тогда с переходом на объекты будет достаточно переписать кусок размером InstanceSize.

    LOL?
  • Семеныч (24.03.08 19:33) [19]
    > Reindeer Moss Eater ©   (24.03.08 19:29) [17]

    > Семеныч, вы предлагаете заменить шило на мыло. Причем с гребанием
    > новых граблей.

    Если Вы подкрепите Ваше утверждение указанием конкретных грабель, то, возможно, я с Вами соглашусь. Пока же я этих грабель не вижу.
 
Конференция "Начинающим" » Что использовать вместо RECORD?
Есть новые Нет новых   [134433   +24][b:0][p:0.001]