![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
как лучше хранить текст в фалах набранный в прогу... я его после этого сохраняю во внешний файл, на данный момент храню в файле не ток текст но и некоторые параметры, что заставляет прибегать к синтаксису...
получется что-то вроде этого в файле
как видно из этого минимального примера, в место пробелов используется андерлайн... просто когда я читалкой прохожучь по файлу получаю "Какое-то_имя_человека" в переменную и заменяю на нормальные пробелы эти подчёркивания... это сразу лишает возможности использовать "_" в тексте, если его даж и набрать, потом он будет заменён... вот как лучше такие файлы организовывать? есть мысля, что не символы просто сохранять, а код этих символов, это как вообще, нормальная идея? Это сообщение отредактировал(а) ZC1989 - 25.1.2007, 13:15 -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Можно сделать структурами.
Первая структура - заголовок файла Потом структура списка людей. При таком подходе - любые символы и служебная информация будут храниться без проблем |
|||
|
||||
| ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: -2 Всего: -1 |
struct+vector+fstream
проблема не совсем ясна... приведи конкредный пример ввода и нужного вывода --------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
ip127001, я хочу теоретически разобрать эту делему... потому что читаю немного разными способами...
строка может содеражть не только название (что бы быть уверенным в чтении) но и некоторые параметры пример: загаловок текст параметр1 параметр2 если скжет строка будет иметь вид NAME test 1 0 то тут всё пучком, text будет прочитано в строку, первый и второй паматры расшифруются (к примеру это мой enum) и всё будет работать как положено, но если будет записана строка NAME test bad 1 0 то тот же ifstream передаст в строку только text, в первый паметр bad а во второй 1, последний же параметр вообще пропадёт... для этого и пишу text_bad, что бы текстовая строка не разрывалась на 2 слова яснее объяснил проблем? -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Я бы набросал все возможны типы данных, которые необходимо хранить в файле, и уже основываясь на этом списке разрабатывал проект формата файла.
Например, в файле могут быть соранены несколько параметров? содержащих имя и два int Затем несколько параметров, содержащих имя и 3 int, неограниченное количество строк. Тогда формат файла можно представить как-нибудь так: int - Количество параметров 1-го типа Массив структур для данных 1-го типа int - Количество параметров 2-го типа Массив структур параметров 2-го типа int - Количество произвольных строк Массив строк Либо универсальная структура, которая может содержать внутри себя все типы параметров (потребует больше памяти) { int Type; int Param1; int Param2; int Param3; char string[250]; } В общем вариантов для раздумий уйма. Например, как лучше хранить строку (т.е. структуры переменного размера) и т.п. |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Anikmar, получается что я должен буду как-то разобрать содержимое в строке, получается не совсем цикл к которому я привык...
могут быть и больше, я пытаюсь универсальное сворганить детище..... может там ещё и дроби нужно будет и всякое такое... просто ед. оптимальным вариантом мне видится перевод символов в их кодировку и уже сохранение этой кодировки... к примеру получилось бы так NAME 2321665361727217836763635623661231832736712 1 0 но в то же время не совсем уверен в правильности... а тот вариант что ты предложил мне кажется не оч практичным, если будет та же ерунда с "text bad" помоему, глюка даст это... -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Тяжело что-то советовать не зная постановки задачи.
Какие данные надо сохранять? Например, можно воспользоваться готовым ini файлом и забыть про парсинг... |
|||
|
||||
| KelTron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: нет Всего: 38 |
а можно в файле записать, например, так
и считывать так:
Вряд ли тебе в имени нужно хранить ';' поэтому его удобно использовать в качестве разделителя -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||
|
|||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Если файл планируется набирать вручную, то можно оставить текстовый формат.
А вот если файл создается из программы, то никакого смысла не вижу хранить тот же float в текстовом виде. |
|||
|
||||
| ip127001 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 24.11.2006 Где: Omsk Репутация: -2 Всего: -1 |
ок..теперь все понятно...можно попробывать ввести стоп-символы которые будут разграничевать элементы строки... пр. Name|parameters.. ввод: введите имя файла: 1.txt // ;жмешь ентер прога добавляет после имени стоп-символ(|) и спомощью append добавляешь параметры.... у тя получиться стринговая переменная которая будет выглядеть примерно так 1.txt|1 2 3 213 3254 rgds trh так ее в файл и кинешь потом из файла считаешь и с опираясь на стоп символ раскидаешь строку....самый просто способ помоему...немного правда неэлегантный)) Добавлено @ 15:03 и будет тебе цикл))) Добавлено @ 15:04 во келтрон мене чуть опередил) --------------------
aqua currit et debere currere ut currere solebat |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: нет Всего: 23 |
Строго не судите:
-------------------- i_i (';') (V) ![]() |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| VectorMan |
|
|||
|
Antihero ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 9.4.2006 Репутация: 1 Всего: 4 |
можно использовать xml
|
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
-------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| ZC1989 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 468 Регистрация: 17.7.2006 Где: Нижний Новгород; Россия Репутация: нет Всего: 1 |
Rockie, дайте вам волю вы тут придёте ещё к HTML разметке...
проблем в том что во первых я не горю желаением использовать символы для пробелов или разделения каких-то параметров от строк... - это черевато во первх не возможностью использовать этот символ, во вторых не практично просто... тут некоторые сказали что использовать надо в конце ; - а если этот символ будет через пробел написан в тексте... получается ошибочная трактовка читалкой... -------------------- озарение настанет позже, когда поймём больше... (Сo. Stigmata) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |