Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] БД, fstream.h 
:(
    Опции темы
SAVEL
Дата 5.1.2008, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 31.1.2007

Репутация: нет
Всего: -1



Доброе время суток!

Создаю БД тарифных планов, храню данные в файле! Помогите разобраться как выводить краткую информацию о тарифном плане, как изменять её, и сортировать по любому полю? Методы! smile 
Открою методы инициализации, добавления и печати полной инфы:
db.cpp
Код

void abonent::Init(string nm,string emp,string gor,int fc,int cb,string dat,double permin,double persms,double permms,string mi,string wap)
{
 name=nm;
 emprice=emp;
 gorod=gor;
 fafcon=fc;
 conbal=cb;
 data=dat;
 ppmin=permin;
 ppsms=persms;
 ppmms=permms;
 mobinet=mi;
 WAP=wap;
}

void abonent::dobavlenie(char *file)
{
    ofstream ved(file,ios::app|ios::binary);  //запись в бинарный файл

ved<<endl;
for(i=0;i<name.size();i++)
ved<<name[i];
ved<<" ";

for(i=0;i<emprice.size();i++)
ved<<emprice[i];
ved<<" ";

for(i=0;i<gorod.size();i++)
ved<<gorod[i];
ved<<" ";

ved<<fafcon<<" ";
ved<<conbal<<" ";

for(i=0;i<data.size();i++)
ved<<data[i];
ved<<" ";

ved<<ppmin<<" ";
ved<<ppsms<<" ";
ved<<ppmms<<" ";

for(i=0;i<mobinet.size();i++)
ved<<mobinet[i];
ved<<" ";

for(i=0;i<WAP.size();i++)
ved<<WAP[i];
}


void abonent::PrintFULL(char *file)
{
fstream ved(file); //чтение из бинарного файла
cout<<abonent::Rus("[ПОЛНЫЕ ДАННЫЕ О ТАРИФНЫХ ПЛАНАХ]\n");
while(!ved.eof())
{
    cout<<abonent::Rus("+++");
ved>>name;
for(i=0;i<name.size();i++)
cout<<name[i];
cout<<" [";

ved>>emprice;
for(i=0;i<emprice.size();i++)
cout<<emprice[i];
cout<<"][";

ved>>gorod;
for(i=0;i<gorod.size();i++)
cout<<gorod[i];
cout<<"][";

ved>>fafcon;
cout<<fafcon<<"][";

ved>>conbal;
cout<<conbal<<"][";

ved>>data;
for(i=0;i<data.size();i++)
cout<<data[i];
cout<<"][ ";

ved>>ppmin;
cout<<ppmin<<"][ ";

ved>>ppsms;
cout<<ppsms<<"][ [";

ved>>ppmms;
cout<<ppmms<<"][";

ved>>mobinet;
for(i=0;i<mobinet.size();i++)
cout<<mobinet[i];
cout<<"][";

ved>>WAP;
for(i=0;i<WAP.size();i++)
cout<<WAP[i];
cout<<"]";
cout<<endl;
}
}



--------------------
В любых делах при максимуме сложности подход к проблеме всё-таки один! Желание - это множество возможностей, а нежелание - это множество причин !!!
PM MAIL   Вверх
SAVEL
Дата 5.1.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 31.1.2007

Репутация: нет
Всего: -1



Help! Help! Help!
Как запрограммировать алгоритм:

1. Считывать посимвольно каждую строку файла, при условии что надо выводить все данные каждой строки до первого пробела и до конца столбика! Это краткая информация! 

2. При нахождении элемента файла 
Код

void abonent::SearchName(string nm)
{
b=false;
fstream ved("vedomost.txt"); //берется из данного файла и записывается
ofstream poick("poick.txt"); //в данный
poick<<" ";
while(!ved.eof())
{
ved>>name;
ved>>emprice;
ved>>gorod;
ved>>fafcon;
ved>>conbal;
ved>>data;
ved>>ppmin;
ved>>ppsms;
ved>>ppmms;
ved>>mobinet;
ved>>WAP;

if(nm.size()==name.size()&&name.find(nm)==0)
{abonent::dobavlenie("poick.txt");
b=true;}

}
if(b==true)abonent::PrintFULL("poick.txt");
else 
    {
    cout<<"No takogo ";
    for(i=0;i<nm.size();i++)
    cout<<nm[i];
    cout<<" imeni\n";
    }

}


изменять его содержимое! Т.е. заменять каждый символ данного поля на введенные данные! 

О НАШЕЛ КОД ГДЕ КАЖДЫЙ СИМВОЛ ФАЙЛА ЗАМЕНЯЕТСЯ НА СЛОВО! 
Код

fstream ved(file);
string str;
string num[10] = {"zero\n","one\n","two\n", 
                      "three\n","forth\n","five\n", 
                      "six\n","seven\n","eight\n","nine\n"};

    getline( ved, str,static_cast<char>(EOF)); // считываем файл
    cout << str;
    for( char ch = '0'; ch <= '9'; ch++ )
    {
        string::size_type index = 0;
        while((index = str.find( ch, index ))!= string::npos )//если индекс 1-го сивола != последнему
        {
        str.replace( index, 1, num[ch-'0'] );
        }
    }
    cout << Rus("\n\n\nРезультат:\n\n") << str;

ПОМОГИТЕ МОДИФИЦИРОВАТЬ КОД И ЗАМЕНЯТЬ ЛЮБУЮ ЧАСТЬ СТРОКИ НА ЛЮБУЮ ВВЕДЕННУЮ!

3. Сортировка, даже нет соображений, как!

Помогите! Позарез надо!!!

Это сообщение отредактировал(а) SAVEL - 5.1.2008, 18:05
--------------------
В любых делах при максимуме сложности подход к проблеме всё-таки один! Желание - это множество возможностей, а нежелание - это множество причин !!!
PM MAIL   Вверх
SAVEL
Дата 6.1.2008, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 31.1.2007

Репутация: нет
Всего: -1



Ребят неужели ни у кого нет соображений по этому поводу!
Помогите! Очень надо!
--------------------
В любых делах при максимуме сложности подход к проблеме всё-таки один! Желание - это множество возможностей, а нежелание - это множество причин !!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1042 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.