Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проба пера, Сканирование директории и вывод списка 
:(
    Опции темы
Дшпыук
Дата 6.3.2010, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не сплю
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 4.3.2010
Где: Омск

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



ТАк сказать проба пера. Первая программа на С++ не могу понять где ошибка, основное подозрение на косячное считывание директорий, либо обработки ini`шника

Код


char *IniRead(char *filename, char *section, char *key){
 char *out = new char[512];
 GetPrivateProfileString(
 (LPCSTR)section,
 (LPCSTR)key,
 NULL,
 out,
 200,
 (LPCSTR)filename
 );
 return out;
}

bool IniWrite(char *filename, char *section, char *key, char *data){
 return WritePrivateProfileString(
 (LPCSTR)section,
 (LPCSTR)key,
 (LPCSTR)data,
 (LPCSTR)filename
 );

int main(){
...........................................
    WIN32_FIND_DATA f;
    HANDLE arf = FindFirstFile("./res/progs/",&f);
    char *fname[100];
    printf("%d",lab_compl);

    while((FindNextFile(arf,&f)) != false){
        FindNextFile(arf,&f);
        char* os = itoa(lab_compl,os,10);
        fname[lab_compl] = IniRead("./res/conf.ini", os ,"name");
        cout << f.cFileName << endl;
        ++lab_compl;
        }
    FindClose(arf);
...........................................
}


Компиляет, но при запуске вылетает с ошибкой.
Код

Сигнатура проблемы:
  Имя события проблемы:    APPCRASH
  Имя приложения:    iniReadWrite.exe
  Версия приложения:    0.0.0.0
  Отметка времени приложения:    4b928314
  Имя модуля с ошибкой:    iniReadWrite.exe
  Версия модуля с ошибкой:    0.0.0.0
  Отметка времени модуля с ошибкой:    4b928314
  Код исключения:    c0000005
  Смещение исключения:    000500a0
  Версия ОС:    6.1.7600.2.0.0.256.1
  Код языка:    1049
  Дополнительные сведения 1:    0a9e
  Дополнительные сведения 2:    0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3:    0a9e
  Дополнительные сведения 4:    0a9e372d3b4ad19135b953a78882e789


В аттаче полный проект. Да ###кода полно, но я только учусь) Всё будет позже... Пока пытаюсь лишь исправить эту ошибку.

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  proj.rar 11,44 Kb
PM MAIL ICQ   Вверх
cvid
Дата 7.3.2010, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

while((FindNextFile(arf,&f)) != false){
        FindNextFile(arf,&f);


Че-то как-то не так)) Зачем второй раз функцию FindNextFile вызывать? Её и так цикл на каждой итерации вызывает. А так получается, что первый вызов вернул true, условие whil'a удовлетворено, а второй вызов, допустим, вернул false (файлы кончились), а ты это дело обработать пытаешься.
PM MAIL   Вверх
xvr
Дата 7.3.2010, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вот это FindFirstFile("./res/progs/",&f); должно быть как минимум таким FindFirstFile(".\\res\\progs\\*",&f);
Что говорит отладчик, где именно ломается?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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