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

[C++] Вывод в файл. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Rolan_Pro
 Аватар для Rolan_Pro
5 / 5 / 1
Регистрация: 20.04.2011
Сообщений: 87
16.12.2011, 17:46     [C++] Вывод в файл. #1
В доброго времени суток!
Дело такое, нужно что бы в файл выводилось такая информация:
[list]
sound_1
sound_2
sound_3
...
sound_n

[sound_1]

Дело в том, что sound_ может быть сколько угодно, соответственно и секций должно быть столько же.
Файлы берутся из папки, поиск осуществляю с помощью такого кода:
SearchFiles
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
BOOL SearchFiles(LPCTSTR lpszFileName, LPSEARCHFUNC lpSearchFunc, BOOL bInnerFolders = TRUE) 
{
    LPTSTR part;
    char tmp[MAX_PATH]; 
    char name[MAX_PATH];
 
    HANDLE hSearch = NULL;
    WIN32_FIND_DATA wfd;
    memset(&wfd, 0, sizeof(WIN32_FIND_DATA));
 
    
    if(bInnerFolders)
 
    {
        if(GetFullPathName(lpszFileName, MAX_PATH, tmp, &part) == 0) return FALSE;
        strcpy(name, part);
        strcpy(part, "*.*");
 
        wfd.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY;
        if (!((hSearch = FindFirstFile(tmp, &wfd)) == INVALID_HANDLE_VALUE))
        do
        {
            
            if (!strncmp(wfd.cFileName, ".", 1) || !strncmp(wfd.cFileName, "..", 2))            
            continue;
        
            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
            {
                char next[MAX_PATH];
                if(GetFullPathName(lpszFileName, MAX_PATH, next, &part) == 0) return FALSE;
                strcpy(part, wfd.cFileName);
                strcat(next, "\\");
                strcat(next, name);
 
                SearchFiles(next, lpSearchFunc, TRUE);
            }
        }
        while (FindNextFile(hSearch, &wfd));
        FindClose (hSearch);
    }
 
    if ((hSearch = FindFirstFile(lpszFileName, &wfd)) == INVALID_HANDLE_VALUE) 
        return TRUE; 
    do
    if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) 
    {
        char file[MAX_PATH];
        if(GetFullPathName(lpszFileName, MAX_PATH, file, &part) == 0) return FALSE;
        strcpy(part, wfd.cFileName);
 
        lpSearchFunc(file);
    }
    while (FindNextFile(hSearch, &wfd)); 
    FindClose (hSearch); 
 
    return TRUE;
}

в файл вывожу с помощью:
trace
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void trace(char *fmt, ...)
{
    static FILE *file;
    static short init = 1;
    va_list args;
    char str[254];
 
    va_start(args, fmt);
    vsprintf_s(str, fmt, args);
    va_end(args);
 
    if(init != NULL)
    {
        init = NULL;
        file = fopen("file.txt", "w");
    }
    else
        file = fopen("file.txt", "a+");
 
    fprintf_s(file, "%s\n", str);
    fclose(file);
}

Подскажете как реализовать, примером кода желательно.

Добавлено через 1 час 1 минуту
И что б в каждую секцию sound писалась информация :
name = "tratata"
album = "tratata"
artist = "tratata"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 17:46     [C++] Вывод в файл.
Посмотрите здесь:

C++ вывод в файл
C++ Вывод в файл
C++ Вывод в файл
Вывод в файл C++
Вывод в файл C++
C++ Вывод в Файл С++
Вывод в файл C++
C++ Вывод в файл
Вывод в файл C++
Вывод из файл C++
Вывод в файл C++
Вывод в файл C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.12.2011, 19:28     [C++] Вывод в файл. #2
сделай струтуру sound
сделай массив структур sound
в структуру sound можно добавить id (можно и просто по индексам)

дальше записываешь в секцию list эти id (используя fprintf() (есть ещё sprintf() ))
потом, перебирая структуры, записываешь данные из каждой структуры
Rolan_Pro
 Аватар для Rolan_Pro
5 / 5 / 1
Регистрация: 20.04.2011
Сообщений: 87
16.12.2011, 19:43  [ТС]     [C++] Вывод в файл. #3
accept, мммм, а пример кода можно?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
16.12.2011, 20:34     [C++] Вывод в файл. #4
как структуры делать, есть в книгах

Добавлено через 14 минут
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
struct sound {
    char name[100],
         album[100],
         artist[100];
};
 
...
 
    struct sound *slst;
    int n = 10;
 
    slst = (struct sound *) malloc(n * sizeof(struct sound));
    if (slst == NULL) {
        printf("err\n");
        return 1;
    }
 
    strcpy(slst[0].name, "name abcd");
    strcpy(slst[0].album, "album abcd");
    strcpy(slst[0].artist, "artist abcd");
 
...
 
    for (i = 0; i < n; i++) {
        fprintf(ofp, "[sound_%d]\n", i + 1);
        fprintf(ofp, "name = %s\n"
                     "album = %s\n"
                     "artist = %s\n",
                     slst[i].name,
                     slst[i].album,
                     slst[i].artist);
        putc('\n', ofp);
    }
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
16.12.2011, 20:39     [C++] Вывод в файл. #5
я чёт не въехал в чем проблема?

Rolan_Pro, ты написал такой код и не можешь описать простую структуру ? оО
или в чем прикол?
Rolan_Pro
 Аватар для Rolan_Pro
5 / 5 / 1
Регистрация: 20.04.2011
Сообщений: 87
16.12.2011, 20:48  [ТС]     [C++] Вывод в файл. #6
OstapBender, это не моё, в интернетах нашел.
Yandex
Объявления
16.12.2011, 20:48     [C++] Вывод в файл.
Ответ Создать тему
Опции темы

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