![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.10.2008
Сообщений: 714
|
![]()
Задача такова:Создать динамический массив, записать его в файл, потом считать его с файла и вывести в мемо...
Код:
Хотел бы что бы так записало в файл и так же вывело в мемо... Код:
Последний раз редактировалось Lemo; 15.09.2009 в 20:38. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]()
Lemo А что конкретно тебя не устраивает в таком варианте, как у тебя? Мне кажется, что этот код работает корректно. Ой, ой, на ты его для чтения повторно открываешь после сохранения, я надеюсь?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.10.2008
Сообщений: 714
|
![]()
Записывает в файл не коректно (рисунок же прикрепил)
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
![]() Цитата:
Что-то мне подсказывает, что для получения корректного отображения файла в блокноте вам нужно использовать не типизированный, а текстовый файл. |
|
![]() |
![]() |
![]() |
#5 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]()
Вроде что то такое:
Код:
Будь проще и люди к тебе потянутся
Последний раз редактировалось spamer; 15.09.2009 в 22:44. |
![]() |
![]() |
![]() |
#6 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
![]()
Дело в том, что вы используете типизированный файл, а в качестве типа используете запись. Т.е. файл ваш - последовательность записей Dysc.
Каждая подобная запись использует определенное количество места на жестком диске/памяти, а если быть точнее - ее составляющие. Код:
Итого, ваша запись использует 118 байт памяти. Физически используется 128 байт: +7 нулевых байт после строки - на самом деле компилятор выделяет под строку такое количество байт, при котором бы она заканчивалась на любом восьмом байте (0F,17,586F) Т.е Код:
Код:
Далее по теме: для того, чтобы любая запись могла быть корректно изменена - она занимает максимальное количество байт в файле, который вы создаете - 128 в нашем случае. Все данные идут последовательно: сначала 4 байта KodCycl, после 108 байт NazvCycl, после 8 байт ObsCyclCred... Думаю, принцип понятен: компилятор записывает байты - оттого такая визуальная читабельность текста, однако машинная читаемость прелестная. )) А если уж вам необходимо, чтобы текст был читабелен и визуально, ну что ж - записывайте данные в текстовый файл при том текстом (что значительно увеличит размеры файла - в нашем случае для строки используется 108(!!!) байт из 128), как вам предложил mMag. Используйте байт-сепараторы, к примеру, и делайте запись и чтение/парсинг каждой строки своими силами. Только вопрос: А оно вам надо? Код-то работает. =)))
Познавая других, мы познаем себя.
С'est la vie... Последний раз редактировалось SuperVisor; 16.09.2009 в 08:15. Причина: Так, матчастью страдал.. )))) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамический массив | Ivin | Мультимедиа в Delphi | 14 | 27.02.2009 23:22 |
динамический массив | Dimon | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 21.03.2008 18:08 |
Динамический массив | _ares_ | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.12.2007 23:54 |
динамический массив | Diller | Помощь студентам | 48 | 07.10.2007 16:43 |
Динамический массив | Mickle | Общие вопросы Delphi | 8 | 19.06.2007 06:45 |