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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++]Файлы 
V
    Опции темы
Funtik
Дата 8.6.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Умоляю вас помогите мне доделать функции: 1) удаления записи в файле; 2)просмотра данных из файла по алфавиту пункта назначения
Пожалуйста не добавляйте в функции какие-нибудь новые навороты, ведь мне надо чтобы пошло на VC++6.0
Плиз объяните как же сделать эти две функции, а то я умру. И подскажите плиззззз как мне правильно работать с файлом при его открытии или создании, а то че-то вообще как-то не могу!!!!!!!!! smile 


Код

#include "stdafx.h"
#include "iomanip.h"
#include "iostream.h"
#include "conio.h"
#include "stdio.h"
#include "string.h"
#include "dos.h"
#include "stdlib.h"
#include "fstream.h"

static int sz=0;

struct TRANZ
{
    int nomer_poezda;
    char priznak_tranz[20];
    char punkt_naz[20];
    int date[3];
};

TRANZ t[10];

void menu();               
void writee();              
void readd();          
void delet();          
void alfavit();
void do_punkta();


int recsize = sizeof(int)+20*sizeof(char)+20*sizeof(char)+4*sizeof(int);

fstream potok;  

int main()                  
{   
    char *filename="poezd.txt";
    
    ofstream build(filename, ios::binary);

    potok.open( filename, ios::binary | ios::in | ios::out );  
    
    if(!potok)
    {
        cout << "\aFail " << filename << " ne bil uspershno otkrit";   
        return -1;
    }
    
    menu();       
    
    potok.close();     
    
    return 0;
}

void menu()       
{
    int choice;
    
    system ("cls");     
    
    cout << "\n\n\t\t|Zapic           ------ 1|"; 
    cout << "\n\n\t\t|Chtenie         ------ 2|"; 
    cout << "\n\n\t\t|Udalenie        ------ 3|";
    cout << "\n\n\t\t|Korrekt         ------ 4|";
    cout << "\n\n\t\t|Po alfavity     ------ 5|";
    cout << "\n\n\t\t|Do_punkta_naz   ------ 6|";
    cout << "\n\n\t\t|Vixod           ------ 7|";
    
    cout << "\n\n\n\t\t\t\tVash vibor >>> "; 
    cin >> choice;      
    
    switch(choice)                       
    {
    case 1: writee();   break;
    case 2: readd();    break;
    case 3: delet();    break;
    case 4: writee();   break;
    case 5: alfavit();  break;
   // case 6: do_punkta();break;
    case 7: exit(0);  
    default: cout<<"\aNe verno!!! "; menu();
    }
}

void writee()        
{
    int n;
    char choice='y';
        
    do
    {
        system("cls");    
        
        cout << "\n\t\t\t nomer dla zapici >>> "; cin>>n;
        if(sz<n){sz=n;}
        
        cout<< "\n\t\t\tvvedite nomer poezda \n>>> "; 
        cin.ignore();
        cin>>t[n].nomer_poezda;
        
        cout << "\n\t\t\tVvedite priznak tranzitnosti\n>>> ";
        cin.ignore();
        cin.get( t[n].priznak_tranz, 20*sizeof(char));
        
        cout << "\n\t\t\tVvedite konechnii punkt\n>>> ";
        cin.ignore();
        cin.get( t[n].punkt_naz, 20*sizeof(char));
        
        cout<<"\n\t\t\tVvedite vremya otpravleniya: "; 
        
        cout<<"\nVvedite deni >>> ";
        cin >> t[n].date[0]; 
        
        cout << "\nVvedite chas >>> ";
        cin >> t[n].date[1];
        
        cout<<"\nVvedite minyti >>> ";
        cin>> t[n].date[2];          
        
        potok.seekg((n-1)*recsize);
        potok.write(reinterpret_cast<char*>(&t[ n ]), sizeof(t[ 0 ]));
        
        cout<<"\n\t\t\t-----------------------------\n";
        cout << "\n\t\t\tProdoljiti? (y/n) "; 
        cin >> choice;   
                
    } while(choice != 'n');  
    
    menu();
}

void readd()
{   
    int nomer,d1,d2,d3;
    char priznak[20],kon_punkt[20];    
    
    system("cls");
    
    for(int l=0;l<sz;l++)   
    {
        potok.seekg(l*recsize);   
        
        potok.read(reinterpret_cast<char*>(&nomer),4); 
        potok.read(priznak,20);
        potok.read(kon_punkt,20);
        potok.read(reinterpret_cast<char*>(&d1),4); 
        potok.read(reinterpret_cast<char*>(&d2),4); 
        potok.read(reinterpret_cast<char*>(&d3),4); 
        potok.clear();
            
        printf("\n------------------------------------------------------");
        printf("\n\tNomer <<< %d",nomer);
        printf("\n\n\t\tPriznak <<< %s",priznak);
        printf("\n\n\t\t\tKon_punkt <<< %s",kon_punkt);           
        printf("\n\n\t\t Vremya: ");
        printf("\n\n\t\t Deni   <<< %d",d1);
        printf("\n\n\t\t Chas <<< %d",d2);
        printf("\n\n\t\t Minyti  <<< %d",d3);             
    }
    
    printf("\n\n-------------------------------------------");
    printf("\nNajmite chto-nibudi ");
    
    getch();  
    
    menu();
}

void delet()
{
    /*char choice = 'y';
    int pos = 0;
    int count = 0;
        
    cout << "\nVvedite nomer zapici dla udaleniya ";
    cin >> pos;      
   
    potok.seekg(pos-1);
    for (int i = 0; i < 10; ++i)
    {
        if (pos == i) continue;

        potok.write(reinterpret_cast<char*>(&t[ i ]), sizeof(t[ 0 ]));

        /*fbin.write(f[i].familiya,20);
        fbin.write(reinterpret_cast<char*>(&f[i].nomer_gruppi),4);
        fbin.write(reinterpret_cast<char*>(&f[i].sr_usp),8);
    }*/

    getch();
    
    menu();
}

void alfavit()
{
    system("cls");    
}


Добавлено через 3 минуты и 35 секунд
Ой вначале 
Код

int recsize = sizeof(int)+20*sizeof(char)+20*sizeof(char)+3*sizeof(int);

PM MAIL   Вверх
Funtik
Дата 8.6.2007, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ой записи удалили. Ай-да какие хорошие люди. smile

Добавлено @ 21:50
Хотя ба скажите почему не помагаете


M
Alexeis
Цитата(Правила раздела "Центр помощи")

>В данном разделе запрещено поднимать темы, т. е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.


Товарищ вам тут ничем не обязаны. Во время сессии много вопросов. Даже суток не прошло. Создавайте тему в разделе работа и устанавливайте свои условия.


Это сообщение отредактировал(а) Alexeis - 8.6.2007, 22:46
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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