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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как переделать код под мою задачу? как переделать код под мою задачу? 
:(
    Опции темы
username12
Дата 23.5.2016, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача:
Получить информацию о дисковом системе компьютера,модель,емкость геометрия, и т.д разделы и файловые системы.

Как переделать код под мою задачу?

Код

int OpenFileR(char *FileName, FILE **File) {
    if ((*File = fopen(FileName, "r")) == NULL) return(0);
    else return(1);
}
int OpenFileW(char *FileName, FILE **File) {
    if ((*File = fopen(FileName, "w+")) == NULL) return(0);
    else return(1);
}
int CloseFile(FILE **File) {
    if (fclose(*File)) return(0);
    else return(1);
}
void Logo(void)
{
    puts("");
    puts("                              ============================");
    puts("");
    puts("                                XX  XX  YY  YY  NN    NN  ");
    puts("                                 XXXX    YYYY   NNNN  NN  ");
    puts("                                  XX      YY    NN NN NN  ");
    puts("                                 XXXX     YY    NN  NNNN  ");
    puts("                                XX  XX    YY    NN    NN  ");
    puts("");
    puts("");
    puts("                               ");
    puts("");
    puts("                              ============================");
    puts("");
    puts("=============================================================================================");
    puts("    Получить список пользователей, относящихся к группе с наибольшим числом пользователей    ");
    puts("=============================================================================================");
    puts("");
}
 
int GetGroups(char *String, FILE *Out) {
    int Count;
    for (Count = 0; Count < strlen(String)-1; Count++) {
        fputc(String[Count], Out);
        if (String[Count] == ':') 
            if (String[Count+1] == '\n') return(0);
    }
    fprintf(Out, ",");
    return(0);
}
 
int GetGID(char *String) {
    char Num[1000]; 
    int Count;
    for (Count = 0; Count < strlen(String)-1; Count++) {
        if (String[Count] == ':') {
            memcpy(Num, String, Count);
            Num[Count] = '\0';
            return(atoi(Num));
        }
    }
    return(-1);
}
 
void GetUsers(char *String, int IDG, FILE *Out) {
    int Count, IDU, Trig = 0;
    IDU = GetGID(String);
    if (IDU == IDG) {
        for (Count = 0; Count < strlen(String)-1; Count++) {
            if (Trig == 1) {
                fprintf(Out, "%c", String[Count]);
            }
            if (String[Count] == ':') Trig++;
        }
        fprintf(Out, ",");
    }
}
 
int CountUsers(char *String) {
    int Count, Num = 0;
    for (Count = 0; Count < strlen(String)-1; Count++) {
        if (String[Count] == ',') Num++;
    }
    return(Num);
}
 
void PrintUsers(char *String, int Max) {
    int Count, Num = 0, Trig = 0;
    for (Count = 0; Count < strlen(String)-1; Count++) {
        if (String[Count] == ',') Num++;
    }
    if (Num == Max) {
        fprintf(stdout, "Группа: ");
        for (Count = 0; Count < strlen(String)-2; Count++) {
            if (String[Count] == ':') {
                Trig++;
                continue;
            }
            if (Trig == 1) fprintf(stdout, "%c", String[Count]);
            if (Trig == 2) {
                fprintf(stdout, "       Пользователи: ");
                Trig++;
            }
            if (Trig == 3) fprintf(stdout, "%c", String[Count]);
        }
        fprintf(stdout, "\n");
    }
}


Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "Main9Func.h"
 
#define true 1
 
int main(void) {
    char StrGrp[1000], StrUsr[1000], StrOut[1000];
    int IDG = 0, Max = 0, Num = 0;
    FILE *Usr, *Grp, *Out;
////////////////////////////////////////////////////////////////////////////////////
    Logo();
    system("cat /etc/passwd | awk -F ":" \'{print $4":"$1}\' > users");
    system("cat /etc/group | awk -F ":" \' { print $3":"$1":"$4}\' > groups");
    OpenFileR("users", &Usr);
    OpenFileR("groups", &Grp);
    OpenFileW("out", &Out);
    while (true) {
        fgets(StrGrp, 800, Grp);
        if (feof(Grp)) break;
        GetGroups(StrGrp, Out);
        IDG = GetGID(StrGrp);
        while (true) {
            fgets(StrUsr, 800, Usr);
            if (feof(Usr)) break;
            GetUsers(StrUsr, IDG, Out);
        }
        fprintf(Out, "\n");
        rewind(Usr);
    } 
    rewind(Out);
    while (true) {
        fgets(StrOut, 800, Out);
        if (feof(Out)) break;
        Num = CountUsers(StrOut);
        if (Num > Max) Max = Num;
    }
    rewind(Out);
    while (true) {
        fgets(StrOut, 800, Out);
        if (feof(Out)) break;
        PrintUsers(StrOut, Max);
    }
    fprintf(stdout, "\n\n");
    CloseFile(&Usr);
    CloseFile(&Grp);
    CloseFile(&Out);
    return(0);
}

PM MAIL   Вверх
xvr
Дата 24.5.2016, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(username12 @  23.5.2016,  20:14 Найти цитируемый пост)
Как переделать код под мою задачу?

Никак. Исходный код никак не работает с 'информацию о дисковом системе компьютера,модель,емкость геометрия, и т.д разделы и файловые системы.'

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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