![]() |
|
Модераторы: bsa |
![]()
|
|
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
Изучаю работу с файлами, но материала оч. мало. Везде сухие функции работы с файлами, а толкового объяснения записи структуры или массива структур, я не говорю про указатели и структуры основаны да динамическом связывании. Пожалуйста, поделитесь информацией или источниками...
Добавлено через 45 секунд язык СИ, не с++ |
|||
|
||||
| inside_pointer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: -1 Всего: 12 |
А что и куда ты не можешь вывести ? |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
А тебе нужны мокрые?
|
||||||
|
|||||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
нужны примеры алгоритмов, а не синтаксис функций... В том то и дело, что я знаю, что не стоит такого делать, но...каким образом записать структуры с изменяемыми по размеру данными, с указателями, динамическими структурами данных...даже мокрое описание синтаксиса об этом не расскажет...:( но данные надо же хранить и не в оперативной памяти...я уверен, что для этого существует парочка алгоритмов решения такой проблемы...вот где |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
пример из хелпа BCB, что конкретно не понятно?
|
|||
|
||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
||||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
дык... тут просто вопрос в принятии решения в какой последовательности сохранять... потом в такой же последовательности загружать.
например дерево можно сохронять в глубину, сохраняя данные и bool, который говорит что пора подняться на уровень выше.
Добавлено через 6 минут и 40 секунд можно вместо bool писать int и сразу записывать на сколько уровней надо подняться, тогда файлик будет меньше. Это сообщение отредактировал(а) korian - 26.3.2008, 18:51 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Если интересуют универсальные алгоритмы записи чего угодно в файл, то таких не существует (ни для C ни для C++) Такие алгоритмы можно реализовать на языках поддерживающих интроспекцию и динамическое создание типов - например на Java. Если нужно сохранить КОНКРЕТНЫЕ структуры данных, то под них разрабатывают КОНКРЕТНОЕ представление их в файле и пишут КОНКРЕТНЫЕ процедуры сохранения и восстановления. Существуют библиотеки, облегчающие такое сохранение и восстановление, но они в основном все на С++ (искать по ключевому слову Streaming) |
|||
|
||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
Со всем согласен...но...увидеть бы хоть один пример записи динамической структуры (например списка) в файл. Согласитесь, увидев первый раз функции для работы с файлами, придумывать алгоритм записи динамической структуры как-то ...хотелось людей посмотреть, ну и потом можно и себя показать... Библиотеки С++ пока не трогаю как и в целом С++, до него еще руки дойдут... |
|||
|
||||
| inside_pointer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: -1 Всего: 12 |
А ты прочитать то вообще можешь список если он у тебя создан ?
a - b - c - d прочитал а записал, перешёл к b прочитал записал Если ты с ними работаешь то наверное умеешь уже всё это, а если не умеешь тут проблема не с файлами, файл это просто поток. Можешь сделать строку abcd ? |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
вот пример сохранения дерева, по алгоритму описанному выше.
Это сообщение отредактировал(а) korian - 27.3.2008, 08:52 |
|||
|
||||
| Podarochek |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 2.11.2007 Репутация: нет Всего: нет |
void Get(list*pl,char *&vux) {static int i=0; if(pl!=NULL) { vux[i++]=pl->kej; Get(pl->next,vux);} else{vux[i]='\0'; } такой записи не встречал и такой :( |
|||
|
||||
| inside_pointer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: -1 Всего: 12 |
Если твоя штука работает, то попробуй вот такую, смысл в том, что когда самая первая функция в стеке возвращает 5 значит имеется строка, которую можно передать в поток(файл). А что правда твоя i по всей строке проходит а не записывает детей друг на друга ? |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
издеваетесь... ну вот почти на чистом C
new надо malloc'ом заменять?
Это сообщение отредактировал(а) korian - 27.3.2008, 13:01 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |