Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mrhankey
Сообщений: n/a
#1

Обработка файлов в c++ - C++

30.11.2009, 19:56. Просмотров 963. Ответов 0
Метки нет (Все метки)

Ребята моя программа создаёт базу данных простенькую, и всё введенное в консоль сохраняет в txt файл. Мне нужно её доработать так чтобы я мог осуществить поиск по этой базе и отредактировать найденные данные (то есть прописать новые)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#define _CRT_SECURE_NO_WARNINGS
//-------------------------------------------------------------------------
#include <stdio.h>
 #include <conio.h>  
 #include <math.h>
 #include <locale.h>
 #include <string.h>
 #include <time.h>
#include <stdlib.h>
#include "windows.h"
//------------------------------------------------------------------------
void Convert866to1251(char *dest)
{
    const char t[] =
        "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп"
        "                                                "
        "рстуфхцчшщъыьэюяЁё              "; // t - строка длиной 128 символов
 
    for(int i = 0; dest[i]!=0; i++ )
    {
        int j = (unsigned char)dest[i] - 128; // получаем код символа - 128 (это будет позиция в строке t)
        if( j>=0 ) // если код символа был больше 127 (т.е. может понадобится его перекодировать)
            if( t[j]!=' ' ) // если в строке t не пробел (т.е. это буква, которую нужно заменить на нужную)
                dest[i] = t[j]; // то заменяем
    }
}
//-------------------------------------------------------------------------
void error()
{
    printf("\nВведённый номер не соответствует ни одному пункту меню!\nНажмите любую клавишу для повтора ввода номера!\nНадеемся со второго раза у вас всё получится!\n");
    _getch();
}
//-------------------------------------------------------------------------
struct georeki       
{   
    char namereka [15];
    char mestopolog [20];
    int  dlina,glubina;
} ;
//-------------------------------------------------------------------------
 
//-------------------------------------------------------------------------
int main ()
 
{ int i,n=0;
    setlocale(LC_ALL,".1251");
 printf("________________________________________________________________________________\n");
 printf("         Программа, которая создаёт базу данных «География.Реки».\n        Программа обладает функциями заполнения и обработки файла\n             в которой хранится база данных «География.Реки».\n");
 printf("________________________________________________________________________________");
printf("       Программу выполнил:\n       Студент группы ИТ-119 Ковалёв Денис, каф. АСОИУ, OмГТУ, 2009\n\n");
bool flag = 0;
    FILE *f;
    char file_name[200];
file_name[0]=0;
while (flag==0){
    if (file_name[0]==0){
 printf("Введите имя файла: ");
 fflush(stdin);
scanf("%199[^\n]s",file_name);
    } if (file_name[0]!=0) flag=1;
}
 
 while (true){system("cls");
     printf("________________________________________________________________________________\n");
 printf("         Программа, которая создаёт базу данных «География.Реки».\n        Программа обладает функциями заполнения и обработки файла\n             в которой хранится база данных «География.Реки».\n");
 printf("________________________________________________________________________________");
printf("       Программу выполнил:\n       Студент группы ИТ-119 Ковалёв Денис, каф. АСОИУ, OмГТУ, 2009\n\n"); 
printf("\nФайл %s успешно создан!\nЖелаем удачи с дальнейшей обработкой данного файла!\n\n",file_name);
printf("1.Заполения файла %s данными\n",file_name);
printf("2.Редактирование файла %s\n",file_name);
 printf("3.Выход из программы\n");
 fflush(stdin);
 printf("\nВведите номер пункта меню для продолжения: ");
char k;
scanf("%c",&k);
switch(k){
case '1':
{
setlocale(LC_ALL,".1251");
f = fopen( file_name, "w+" ); 
struct georeki z [20];
system("cls");          
 
 
if (f == NULL)
{
    printf("Couldn't write to file:  '%s'...\n",file_name);
    return -1;
}
 
printf("Введите количество рек: ");
scanf ("%d", &n);
fprintf(f,"Название реки\tМестположение реки\tГлубина реки\tДлина реки\n");
if (f!=NULL){
 
                         for (i=0; i<n; i++)
                                              {
                                                printf("Введите название %u реки: ",i+1);
                                                scanf ("%s", &z[i].namereka);
                                                setlocale( LC_ALL, ".1251" );
                                                Convert866to1251(z[i].namereka);
                                               fprintf (f,"%13.13s\t",z[i].namereka);
                                                printf ("Введите местоположение реки: ");
                                                scanf ("%s", &z[i].mestopolog);
                                                setlocale( LC_ALL, ".1251" );
                                                Convert866to1251(z[i].mestopolog);
                                                fprintf(f,"%18.18s\t",z[i].mestopolog);
                                                printf ("Введите глубину реки в метрах: ");
                                                scanf ("%d", &z[i].glubina);
                                                fprintf(f,"%12.d\t",z[i].glubina);
                                                printf ("Введите длину реки в метрах: ");
                                                scanf ("%d",&z[i].dlina);
                                                fprintf(f,"%10.d\n",z[i].dlina);
                                              }
                        
}
fclose(f);
printf("\n");
printf("Данные вводимые вами с клавиатуры были успешно сохранены в файл %s\n\nДля перезаписи данных в файле %s нужно выбрать первый пункт меню.",file_name,file_name);
printf("\n\nДля возврата к меню нажмите любую клавишу\n");
_getch();
break;
}
case '2': ;
 
case '3': return -1;
 default: error();system("cls");break;
}
 }
}
//-------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2009, 19:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка файлов в c++ (C++):

Обработка файлов - C++
Программа рассчитывает и показывает правильный результат через раз. Как я понял прога работает всегда НЕ правильно, возможно мне везет и...

Обработка файлов - C++
Написать программу обрабатывающую текстовые файлы, чтобы создавался текстовый файл, в котором символы табуляции , пропуски, которые...

Обработка файлов - C++
нужна программа, в которой ты вводишь имя файла с клавы, она открывает его, ты задаешь условие, которое программа удалит везде в этом файле...

обработка файлов - C++
дан текстовый файл. получить строку, в которой минимальное число слов.

обработка файлов - C++
Записать в файл п произвольных натуральных чисел Переписать в другой файл те элементы, которые кратны К. Вывести полученный файл на печать.

c++ обработка файлов - C++
ОЧЕНЬ нужна программа на c++. Из текстового файла А.txt вывести кол-во символов (не учитывая пробел) в файл B.txt Например в файле...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2009, 19:56
Привет! Вот еще темы с ответами:

Обработка файлов - C++
Дан текстовый файл. Каждая строка имеет следующий формат: фамилия пол рост. Создать новый текстовый файл, включающий список мужчин из...

обработка файлов - C++
Помогите,пожалуйста.как извлекать из файла нужную информацию?(на си) например каждая строчка содержит дату,время,температуру и тд .И...

обработка файлов - C++
товарищи подскажите что не так??? заранее благодарен!!! суть задачи следующая: &quot;Найти максимальный из отрицательных элементов в файле целых...

Обработка звуковых файлов - C++
Товарищи, с помощью каких библиотек, заголовочных файлов, структур, классов и т.д. можно обработать звуковые файлы (например WAV). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru