Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Николай Спешил
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
1

При добавлении в существующий список, новые записи добавлять в начало

01.11.2012, 22:44. Просмотров 502. Ответов 2
Метки нет (Все метки)

Как сделать так, чтобы при добавлении в существующий список, новые записи добавлялись в начало?

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
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct spisok {char fam[20]; float tel; char god[10];} t1;
void input(FILE *); // создание нового файла
void print(FILE *); // просмотр файла
void app(FILE *); // добавление в файл
 
main()
{
    char c;
    FILE *tf;
    while (1)
    {
     puts(" 1 new spisok");
     puts(" 2 prosmotr spiska");
     puts(" 3 dobavlenie v spisok");
     puts(" 0 exit");
     c=getch();
     switch(c)
      {
        case '1':input(tf);break;
        case '2':print(tf);break;
        case '3':app(tf);break;
        case '0':return 0;
        default : puts(" neverni rezim");
        }
    }
}
void input(FILE *tf)
{
    char ch;
    tf=fopen("file1.dat","wb"); // открытие бинарного файла для записи
    printf("\n Vvod spiska\n");
    do
    {
      printf("\n familiya: ");
      scanf("%s",t1.fam);
      printf(" telefon: ");
      scanf("%f",&t1.tel);
      printf(" data: ");
      scanf("%s",&t1.god);
      fwrite(&t1,sizeof(t1),1,tf); // запись в файл одной структуры t1
      printf("\n zakonchit?  y/n \n");
      ch=getch();
    }
     while (ch != 'y');
     fclose(tf);
}
 void print(FILE *tf)
 {
   int i;
   tf=fopen("file1.dat","rb"); // открытие бинарного файла для чтения
   i=1;
   fread(&t1,sizeof(t1),1,tf); // чтение из файла одной структуры t1
   while (!feof(tf))
   {
    printf("\n  %3d familiya %20s  telefon %1.0f   data %10s \n",i,t1.fam,t1.tel,t1.god);
    fread(&t1,sizeof(t1),1,tf);
    i++;
    }
    getch();
}
void app(FILE *tf)
{
    char ch;
    tf=fopen("file1.dat","ab"); // открытие бинарного файла для добавления
    printf("\n  Vvod spiska \n");
    do
    {
        printf("\n familiya: ");
        scanf("%s",t1.fam);
        printf(" telefon: ");
        scanf("%f",&t1.tel);
        printf(" data: ");
        scanf("%s",&t1.god);
        fwrite(&t1,sizeof(t1),1,tf);
        printf(" zakonchit?  y/n \n");
        ch=getch();
    }
    while (ch != 'y');
    fclose(tf);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 22:44
Ответы с готовыми решениями:

Ошибка при добавлении записи по возрастанию в двусвязный список
Здравствуйте. Задание следующее: Добавлять новые записи в двусвязный список так, чтобы список был...

Добавлять новые записи так, чтобы сначала располагались журналы, затем газеты
Структура содержит название издания, газета или журнал, цена экземпляра. Добавлять новые...

При добавлении в начало списка весь список рушится, где ошибка?
есть готовая программа про списки всё работает только при добавлении новой строки в начало списка...

Список: Как добавлять элемент в список, не в начало и не в конец, а между 1 и 2 элементами списка?
Как добавлять элемент в список, не в начало и не в конец, а между 1 и 2 элементами списка? Вот...

ListView. Как сделать так, чтобы при добавлении итемов в начало, сам список 'стоял на месте' ?
Есть ListView в Report mode. Как сделать так, чтобы при добавлении итемов в начало, сам список...

2
Николай Спешил
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
15.11.2012, 18:39  [ТС] 2
что, никто не знает как это сделать? Что нужно изменить в структуре на добавление?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void app(FILE *tf)
{
    char ch;
    tf=fopen("file1.dat","ab"); // открытие бинарного файла для добавления
    printf("\n  Vvod spiska \n");
    do
    {
        printf("\n familiya: ");
        scanf("%s",t1.fam);
        printf(" telefon: ");
        scanf("%f",&t1.tel);
        printf(" data: ");
        scanf("%s",&t1.god);
        fwrite(&t1,sizeof(t1),1,tf);
        printf(" zakonchit?  y/n \n");
        ch=getch();
    }
    while (ch != 'y');
    fclose(tf);
0
Николай Спешил
4 / 4 / 2
Регистрация: 22.10.2012
Сообщений: 78
19.11.2012, 18:12  [ТС] 3
Опять пришлось самому доходить до результата. Тему можно закрывать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2012, 18:12

Как добавлять новые записи через ClientDataSet?
Всем доброго времени суток. Пытаюсь написать приложение для удалённой работы с БД MySQL. Я в первый...

Как при добавлении записи в таблицу сделать выпадающий список с вариантами записей
Ребят, у меня создана база mysql и через odbc конектор база подключена к Vb6. Вопрос как в Vb6, при...

Как добавлять записи в начало списка и ограничивать их количество?
есть listview который берет данные из sqlite, и возникли такие вопросы: 1. как сделать чтоб в...


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

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

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