Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
1

Можно ли как-то присвоить нумерацию записям в файле, структура. Си

24.11.2011, 13:30. Показов 1497. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть структура, мы её заполняем, записываем в файл потом выводи на экран, можно ли как-то сделать чтоб каждая запись была пронумерована.
1. .....
2. .....
3. .....
4. .....
.. ......
я так понимаю что номер надо задать с структуре
C
1
2
3
4
5
{
    struct semin{
    char prieks[35],pasniedz[35],ned[13],nodarb[11];
    int grup,audit, [B]nr[/B];
                };
но как сделать автоматическое присваивание номера записи не понимаю..
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
#include <stdio.h>
#include <conio.h> //getch()
//#include <string.h>
#include <windows.h> // printf utt.
 
 
 
int main()
{
    struct semin{
    char prieks[35],pasniedz[35],ned[13],nodarb[11];
    int grup,audit,nr;
                };
                
    FILE *fp;
    semin fail; //semin - imja struktury; fail - imja peremenoj
    int x,grp,present=0; // celi4eskaja peremenaja, korotaja igrajet rolj lige4eskoj peremenoj
    do
    {
    system("cls");
    printf("1. Pievienot ierakstu.\n");
    printf("2. Apskatit sarakstu.\n");
    printf("3. Iziet.\n");
    
    x=0;
    scanf("%d",&x);
    switch(x)
    {
       case 1:
            system("cls");                
            printf("Aizpildiet pieprasito!!\n");
            printf("Prieksmets: ");
            scanf("%s",&fail.prieks);
            printf("Pasniedzejs: ");
            scanf("%s",&fail.pasniedz);
            printf("Grupas numurs: ");
            scanf("%d",&fail.grup);
            printf("Nedelas diena: ");
            scanf("%s",&fail.ned);
            printf("Nodarbibu stunda: ");
            scanf("%s",&fail.nodarb);
            printf("Auditorija: ");
            scanf("%d",&fail.audit);
            fp=fopen("test1.txt","a");
            fwrite(&fail,sizeof(fail),1,fp);
            fclose(fp);
       break;
       case 2:
            system("cls");
            //printf("   Prieksmets    | Pasniedzejs | Grupa | Ned.diena | Nodarb.stun. | Auditorija\n\n");
            fp=fopen("test1.txt","r");            
            while(fread(&fail,sizeof(fail),1,fp))//fread - prinimajet ukazatelj na peremenuju fail, razmer peremenoj fail, koli4estvo zapisej i ukazatelj na FILE
            {
            printf("\n");
            printf("Prieksmets:       |%20s |\n",fail.prieks);  
            printf("Pasniedzejs:      |%20s |\n",fail.pasniedz);
            printf("Grupas numurs:    |%20d |\n",fail.grup);
            printf("Nedelas diena:    |%20s |\n",fail.ned);
            printf("Nodarbibu stunda: |%20s |\n",fail.nodarb);
            printf("Auditorija:       |%20d |\n",fail.audit);            
            printf("\n");                           
            }
            fclose(fp);
    getch();
    //return 0;
       break;
   
    }
    }
while(x!=3);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2011, 13:30
Ответы с готовыми решениями:

Как можно сравнивать в структуре числа и выводить на экран по возрастанию, если структура находится в файле?
Как можно сравнивать в структуре числа и выводить на экран по возрастанию, если структура находится...

Как убрать нумерацию строк в файле?
Пардон если эта уже избитая тема, не было времени порыскать по форуму, задача такая есть файлы...

Присвоить значение всем записям
Здравствуйте, извините за банальный вопрос, но всё же прошу помочь. БД Access подключена к Delphi,...

Как можно в шаблон ГОСТовской рамки заносить нумерацию страниц?
Подскажите, как можно в шаблон ГОСТовской рамки заносить нумерацию страниц, при этом номер первой...

11
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
24.11.2011, 13:36 2
В цикле перед строкой просто выводи значение i
0
Заблокирован
24.11.2011, 13:36 3
Doctor_,

Можете просто в структуру добавить целочисленное поле и при записи структуры в файл заносить в это поле порядковый номер записи.

Можете просто ввести отдельно счетчик записей и при чтении каждой записи увеличивать этот счетчик.
0
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
24.11.2011, 13:44  [ТС] 4
Цитата Сообщение от Сыроежка Посмотреть сообщение
Doctor_,

Можете просто в структуру добавить целочисленное поле и при записи структуры в файл заносить в это поле порядковый номер записи.

Можете просто ввести отдельно счетчик записей и при чтении каждой записи увеличивать этот счетчик.
можно способ реализации показать?
0
Заблокирован
24.11.2011, 13:48 5
Doctor_,

Например при чтении записей

C
1
2
3
4
5
6
7
int count = 0;
 
while ( fread( /*...*/ ) )
{
   count++;
   ...
}
0
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
24.11.2011, 13:53  [ТС] 6
Цитата Сообщение от Сыроежка Посмотреть сообщение
Doctor_,

Например при чтении записей

C
1
2
3
4
5
6
7
int count = 0;
 
while ( fread( /*...*/ ) )
{
   count++;
   ...
}
в таком случае, он при добавлении новой записи, первой записи присваивает номер, последний +1
например была 1, стал 2 и т.д.
0
Заблокирован
24.11.2011, 14:05 7
Цитата Сообщение от Doctor_ Посмотреть сообщение
в таком случае, он при добавлении новой записи, первой записи присваивает номер, последний +1
например была 1, стал 2 и т.д.
Это плохо?
0
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
24.11.2011, 14:10  [ТС] 8
Цитата Сообщение от Сыроежка Посмотреть сообщение
Это плохо?
да, мне надо чтоб нумерации не менялась если я добавляю запись..
есть две записи с номерами 1 и 2, добавляю ещё одну, надо чтоб 1 и 2 остались с своими номерами и третья запись соответственно стала 3 по очереди. А сейчас про добавлении к первым 2 третью, первая становиться 3 вторая 4 и т.д.
0
Заблокирован
24.11.2011, 14:14 9
Doctor_,
Тогда заводите целочисленное поле в вашей структуре и туда заносите ее номер.
0
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
24.11.2011, 14:17  [ТС] 10
Цитата Сообщение от Сыроежка Посмотреть сообщение
Doctor_,
Тогда заводите целочисленное поле в вашей структуре и туда заносите ее номер.
я указал в структуре int nr а как сделать автоматическое присваивание номера каждой записи? и чтоб при дополнении она брал последний номер+1, а не с 1, мне кажется что в заполнении надо указать цикл, в котором будит добавлять, но как реализовать не понимаю..
0
Заблокирован
24.11.2011, 14:24 11
Цитата Сообщение от Doctor_ Посмотреть сообщение
я указал в структуре int nr а как сделать автоматическое присваивание номера каждой записи? и чтоб при дополнении она брал последний номер+1, а не с 1, мне кажется что в заполнении надо указать цикл, в котором будит добавлять, но как реализовать не понимаю..
Как я уже писал, заводите счетчик и подсчитываете свои записи. Каждой новой записи присваиваете значение счетчика.
0
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
24.11.2011, 14:29  [ТС] 12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Как я уже писал, заводите счетчик и подсчитываете свои записи. Каждой новой записи присваиваете значение счетчика.
я это понимаю, я способ реализации не понимаю
0
24.11.2011, 14:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2011, 14:29
Помогаю со студенческими работами здесь

Как можно в шаблон ГОСТовской рамки заносить нумерацию страниц?
Подскажите, как можно в шаблон ГОСТовской рамки заносить нумерацию страниц, при этом номер первой...

SQL, присвоить значение нескольким записям
А как с помощью SQL-запроса в Delphi присвоить одно значение сразу нескольким записям (строкам)? К...

Система городов - присвоить один ID нескольким записям
Нужно сделать систему городов. Сделал такие таблицы: countries id|title|lang cities...

Как можно перемещаться по записям в таблице, при помощи клавиатуры?
Не очень удобно, если таблица большая и надо остановиться на одной из записей, подумать. А лишь...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru