Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2013, 15:54   #11
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Че Гевара, трабл в том что эта шняга длиннее экрана, а у блокнота нет горизонтальной полосы прокрутки, и там тоже все съезжает поэтому я и говорю шрифт наверное надо как то уменьшить
NewLamer&Programer вне форума Ответить с цитированием
Старый 30.04.2013, 16:01   #12
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Abstraction, если вы смотрели код то видели что массив у меня размером COUNT (задан в define), так вот мне кажется самым оптимальным будет сделать динамический массив, только я не знаю как он делается в С, просто таким образом количество экземпляров PhoneBook в файле будет неограниченным, + я буду знать длину заполненного массива, а не фиксированное число из которого сколько то экземпляров заполнены, а остальные пустые, читать из файла видимо придется по while, только я не знаю как для моего случая это сделать... вообщем если не сложно гляньте код и сделайте какой нибудь набросок чтобы мне было от чего плясать
NewLamer&Programer вне форума Ответить с цитированием
Старый 30.04.2013, 16:01   #13
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Цитата:
Сообщение от NewLamer&Programer Посмотреть сообщение
Че Гевара, трабл в том что эта шняга длиннее экрана, а у блокнота нет горизонтальной полосы прокрутки, и там тоже все съезжает поэтому я и говорю шрифт наверное надо как то уменьшить
А помоему всё там есть.
Безымянный.jpg
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 30.04.2013, 16:04   #14
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Че Гевара, а помоему креститься надо когда кажется :D у меня вин хп, может в этом наша с вами разница...
Изображения
Тип файла: jpg Безымянный.jpg (24.5 Кб, 128 просмотров)
NewLamer&Programer вне форума Ответить с цитированием
Старый 30.04.2013, 16:20   #15
Че Гевара
Форумчанин
 
Аватар для Че Гевара
 
Регистрация: 25.09.2012
Сообщений: 182
По умолчанию

Цитата:
Сообщение от NewLamer&Programer Посмотреть сообщение
Че Гевара, а помоему креститься надо когда кажется :D у меня вин хп, может в этом наша с вами разница...
Попробуйте в меню формат убрать галку с пункта перенос по словам))
Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.
Brian W. Kernighan.
Че Гевара вне форума Ответить с цитированием
Старый 30.04.2013, 16:23   #16
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Цитата:
Сообщение от Че Гевара Посмотреть сообщение
Попробуйте в меню формат убрать галку с пункта перенос по словам))
А еще поставить в Формат-Шрифт какой-нибудь моноширинный шрифт, например, Consolas. Да и заменить Блокнот нормальным блокнотом, например, Notepad++.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 30.04.2013, 16:35   #17
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Abstraction, если вы смотрели код то видели что массив у меня размером COUNT (задан в define), так вот мне кажется самым оптимальным будет сделать динамический массив, только я не знаю как он делается в С, просто таким образом количество экземпляров PhoneBook в файле будет неограниченным, + я буду знать длину заполненного массива, а не фиксированное число из которого сколько то экземпляров заполнены, а остальные пустые
Да, разумеется. По сути, Вы будете реализовывать своими силами функциональность std::vector<>.
Динамическая память в Си выделяется и освобождается с помощью функций malloc(), realloc() и free(). Особое внимание на realloc(), она будет Вам полезна.
Выглядеть в коде это может по-разному. Советую рассмотреть такой вариант (у Вас есть определённая путаница в названиях: термином PhoneBook Вы называете одиночную запись в книге, поэтому для книги в целом я выбрал нейтральное название MyVector):
Код:
struct MyVector{
  PhoneBook* data; //Указатель на динамический массив
  size_t count; //число элементов в массиве
};

void MyVector_init(MyVector* thiz);
void MyVector_initWithContentsOfFile(const char* filename, MyVector* thiz);

void MyVector_AddItem(const PhoneBook& item, MyVector* thiz);
void MyVector_WriteToFile(const char* filename, const MyVector* thiz);
const PhoneBook& MyVector_ElementAt(size_t position, const MyVector* thiz);

void MyVector_destroy(MyVector* thiz);

//Использование в коде:
MyVector a;
MyVector_init(&a);
MyVector_AddItem(item, &a);
MyVector_WriteToFile("PhoneBook.txt", &a);
MyVector_destroy(&a); //После уничтожения к a обращаться нельзя

MyVector b;
MyVector_initWithContentsOfFile("PhoneBook.txt", &b);
const PhoneBook& sasha = MyVector_ElementAt(0, &b);
printf("%s", sasha.Name);
MyVector_destroy(&b);
Цитата:
читать из файла видимо придется по while, только я не знаю как для моего случая это сделать...
Я бы записал в файл первым делом число элементов, тогда читать будет заметно проще.
А ещё хорошая идея (из разряда подстилания соломки на будущее и переворачивания граблей зубцами вниз) вначале записать в файл некоторое целое число, "версию". Это избавит от головной боли в том случае, если Вы поменяете структуру PhoneBook, а затем попробуете прочитать "старый" файл.
Abstraction вне форума Ответить с цитированием
Старый 30.04.2013, 16:53   #18
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Abstraction, ну начнем с того что в чистом виде PhoneBook кажется нигде у меня и нет :D TPhoneBook - структура (от делфийского привычка Т), PB[COUNT] - массив структур и т.д. по поводу выделения памяти, может я конечно опять что то с делфи вспоминаю, но разьве нет такой функции SetLength? которой просто задается новая длина для динамического массива, по вашему коду ничего толком не понял, какие то функции, а где реализация то? записываться число элементов имхо не вариант, будет еще гемор с отделением от структуры... про версию тоже самое, только + еще я же не планирую делать релиз столь дивной софтины :D это просто курсовая - сделал и забыл...
NewLamer&Programer вне форума Ответить с цитированием
Старый 02.05.2013, 18:51   #19
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
начнем с того что в чистом виде PhoneBook кажется нигде у меня и нет :D TPhoneBook - структура (от делфийского привычка Т)
Третье сообщение темы. Ваше сообщение.
Цитата:
Код:
PhoneBook PB[COUNT];
Цитата:
по поводу выделения памяти, может я конечно опять что то с делфи вспоминаю, но разьве нет такой функции SetLength? которой просто задается новая длина для динамического массива
Опять, да. Нет в C такой функции, ближайший аналог - realloc().
Цитата:
по вашему коду ничего толком не понял, какие то функции, а где реализация то?
Предполагается, что реализацию напишете Вы. Не мне же её писать?
Цитата:
записываться число элементов имхо не вариант, будет еще гемор с отделением от структуры... про версию тоже самое, только + еще я же не планирую делать релиз столь дивной софтины :D это просто курсовая - сделал и забыл...
Вы путаете. Не записывать число элементов тяжелее, чем записывать (обратите внимание, что в подавляющем большинстве существующих файловых форматов есть понятие заголовка файла, а в заголовке есть поле, хранящее длину реальных данных - это решение не случайно повторяется раз за разом). Если хотите, проверьте и убедитесь сами.
С версией - опять же, Вам видней, но по моему опыту, на эти грабли лучше приучаться не наступать сразу, безотносительно "релиза" или чего-то ещё. Примите как аксиому: любая программа, которую Вы написали, имеет ненулевой шанс измениться до того, как её получится выбросить. На самом деле, изрядная часть искусства программиста (которой почему-то не учат в классических курсах) - это способность написать программу так, чтобы в неё впоследствии было легко внести ожидаемые изменения. Немодифицируемый код писать обычно легче, но навык его написания практически бесполезен.
Abstraction вне форума Ответить с цитированием
Старый 04.05.2013, 19:08   #20
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Предполагается, что реализацию напишете Вы. Не мне же её писать?
в том то и дело что я не знаю как ее писать ну напишите хотя бы Add, реально не знаю как сделать, а сессия все ближе сдавать скоро...
NewLamer&Programer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовая работа "Экспертная система выдачи рекомендаций по проезду на транспорте" (C#) [FENIX] Фриланс 2 18.10.2012 21:09
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Где скачать Шилда "Полный справочник С++" Syltan Свободное общение 13 01.09.2009 11:48
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
нужна небольшая курсовая по теме "Графика в Паскале". Win't Фриланс 2 18.12.2007 07:53