|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.05.2011, 13:33 | #1 |
Пользователь
Регистрация: 21.04.2010
Сообщений: 15
|
Как записать object, содержащий WideString в файл?
Есть тип
Код:
Код:
Я пишу Код:
Как решить? Если нет прямого пути, буду рад любым предложениям по хранению такого TMyObj. Последний раз редактировалось Lex_Liven; 30.05.2011 в 13:36. |
30.05.2011, 13:56 | #2 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Читаем вдумчиво с заходом по указываемым ссылкам: http://forum.vingrad.ru/forum/topic-.../view-all.html
Особенно вот это смотрим: http://www.delphikingdom.ru/asp/view...alogid=1206#06
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
30.05.2011, 15:02 | #3 | |
Пользователь
Регистрация: 21.04.2010
Сообщений: 15
|
Цитата:
А по второй я сделал вывод, что простейший способ - это записать не WideString, а Array[1..500]of WideChar. Так? Или я, все-таки, недостаточно вдумчиво читал? |
|
30.05.2011, 15:04 | #4 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Простейший - да. Со всеми его ограничениями (трата места впустую, ограничение на длину, невозможность редактирования человеком). Но быстро и просто - да.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
30.05.2011, 15:13 | #5 |
Пользователь
Регистрация: 21.04.2010
Сообщений: 15
|
Ну, в исходном проекте, над которым я работаю, ограничения длины были еще жестче - 30-50 символов, так что это некритично.
Я не понял насчет "редактирования человеком" - вся работа с этими строками идет через компоненты формы, возможность редактирования файлов вручную не предусматривается, так что это тоже не то, на что стоит заморачиваться. Большое спасибо. Когда проверю, дополню пост. =================================== ====== Проверил. Дополняю. Все действительно заработало "почти из коробки". Есть, правда, один глюк. Если не записывать длину строки в виде Integer в тот же файл, то при считывании - считываются все 500 символов (если массив из 500 элементов), что создает проблемы при записи в такой массив, например, пути к файлу. Сейчас попробую дописать в конец 0 символ. Не помогло. Думаю ввести новый объект... Код:
Последний раз редактировалось Lex_Liven; 31.05.2011 в 08:53. |
01.06.2011, 06:45 | #6 |
Пользователь
Регистрация: 21.04.2010
Сообщений: 15
|
Так как? Есть возможность задать размерность объекта? Или придется объявлять 4 типа? WString30, WString50, WString100 и WString500?
|
01.06.2011, 07:30 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
опишите процедуры SaveToStream/LoadFromStream(или вам именно через File надо?)
в них и сохраняйте/грузите как нужно. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.06.2011, 07:33 | #8 |
Пользователь
Регистрация: 21.04.2010
Сообщений: 15
|
Если я объявляю такой объект, то он пишется в файл и читается оттуда без проблем. Даже если я его потом в другой объект включаю (а именно для этого он мне и нужен). Просто хотелось бы для строки длиной не более 30 символов использовать именно WString с массивом внутри array[1..30], а не 500.
Или мне для этого надо объявить класс WString со своими методами, а уже от него создавать объекты? Последний раз редактировалось Lex_Liven; 01.06.2011 в 07:46. |
01.06.2011, 08:04 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.06.2011, 08:38 | #10 | |
Пользователь
Регистрация: 21.04.2010
Сообщений: 15
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как записать файл UNICODE ? | MakTpaxep | Общие вопросы C/C++ | 0 | 24.02.2011 17:05 |
как создать проект содержащий ОДИН файл в visual | LOST94 | Visual C++ | 4 | 23.06.2010 16:17 |
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. | JiLiYa | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 26.12.2008 12:05 |
Как записать файл в файл программы? | Хамяг | Общие вопросы Delphi | 2 | 02.11.2008 16:01 |
как записать record в файл | Kn793 | Общие вопросы Delphi | 5 | 01.08.2008 08:10 |