|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.03.2014, 21:04 | #1 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
Запись в файл строки длиннее 255
Здравствуйте!
Второй день не могу сообразить. У меня программа записывает в файл данные. Примерно так это реализовано: Код:
В объявлении Record если убрать размер строки, то тогда вообще ничего не записывает в файл, а больше [255] поставить не дает компиллятор. Пробовал заменять и на WideString - проблема та же, не пишет ничего в файл. Может, кто-нибудь знает и сможет сразу сказать. А то время поджимает, и некогда изучать всю возможную литературу.
Никогда не знаешь, где тебе повезет... (Фрай)
|
28.03.2014, 21:12 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
1.Утечки памяти, поскольку не освобождаете память под созданные record-ы до UserList.Free
2. Ну добавьте еще в record поле varchar(255) и пишите в него хвост не уместившийся или пробелы. По другому в данной реализации и по-быстрому не вижу способа
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.03.2014, 21:18 | #3 |
Погулять вышел
Участник клуба
Регистрация: 17.05.2010
Сообщений: 1,573
|
Аватар, спасибо, конечно...
1. Не понял насчет утечки, компиллятор не позволяет прописать NewQuest.free 2. Не очень удобное решение проблемы (если вообще решение), потому что обратно считывать из файла данные намучаться можно. Считывание у меня происходит таким образом: Код:
Никогда не знаешь, где тебе повезет... (Фрай)
|
28.03.2014, 21:27 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
1. Освобождение
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.03.2014, 23:32 | #5 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,877
|
Ну как вариант можно вместо типа string использовать array[0..NN] of char. NN поставить достаточно большое.
|
28.03.2014, 23:40 | #6 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
Что будет, если NN не хватит? Или наоборот будет слишком много? Если, я, конечно, не ошибаюсь, при создании статического массива помять под него выделяется сразу в расчёте на все ячейки. Поэтому чтобы лучше использовать либо string, либо, на худой конец, динамический массив из char. |
|
28.03.2014, 23:41 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Динамический здесь не прокатит. И String[255] практически тоже, что статический массив. А просто String аналог динамического массива
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 28.03.2014 в 23:48. |
28.03.2014, 23:47 | #8 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
Всё жестко зафиксировано в описании структуры. |
|
28.03.2014, 23:49 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А по другому она в стреам в съедобном виде не запишется
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
29.03.2014, 01:11 | #10 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,877
|
Цитата:
P.S. Навскидку не припомню ни одной нынешней программы, которая для чего-то использует типизированные файлы. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
delphi, запись Pchar строки в файл | rax9ray | Помощь студентам | 5 | 04.12.2011 16:30 |
запись в файл с новой строки | rowlin | Общие вопросы C/C++ | 6 | 22.04.2011 00:30 |
Запись хвоста ком. строки в файл | Lazio | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 27.03.2011 21:18 |
Запись строки в файл | SL1CK | Общие вопросы Delphi | 3 | 07.01.2010 16:20 |