The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Функция возвращает только числа :((, !*! gsoftadmin, 26-Дек-03, 12:40  [смотреть все]
Всем трям.
У мну проблема. Есть функция, которая (по замыслу, по крайней мере :)) ) возвращает значение ключа из ini файла. Возвращает, ессно, как строку.
Но... Глюк в следующем: если в ключе только цифры, то все ок. Если же в ключе появляються буквы, то функция возвращает черт знает что.

Куда копать?

Сама функция вот:

     5 gchar *read_conf_value(FILE *fp, gchar *section, gchar *key)
      6 {
      7   char str_s[50];
      8   char str_k[100];
      9   char *p = NULL;
     10   static char rez[100];
     11   size_t len_sect;
     12   size_t len_key;
     13
     14   len_sect = strlen(section);
     15   len_key = strlen(key);
     16
     17   rewind(fp);
     18
     19   while (!feof(fp))
     20   {
     21     if ((fgets(str_s,50,fp)) && (!strncmp(str_s,section,len_sect)))
     22     {
     23       while (!feof(fp))
     24       {
     25         if ((fgets(str_k,100,fp)) && (!strncmp(str_k,key,len_key)))
     26           {
     27             p = strtok(str_k,key);
     28             strcpy(rez,p);
     29 #ifdef DEBUG
     30             add_log(p,"info_tag");
     31 #endif
     32             return rez;
     33           }
     34       }
     35     }
     36   }
     37   return rez;
     38 }

  • Функция возвращает только числа :((, !*! SergCh, 08:35 , 29-Дек-03 (1)
    Может быть вообще не находит и выдаёт мусор?
    Мог бы для начала проинициализировать, перед поиском, rez
    Ну, типа, *rez = '\0';
    • Функция возвращает только числа :((, !*! gsoftadmin, 09:57 , 29-Дек-03 (2)
      >Может быть вообще не находит и выдаёт мусор?
      >Мог бы для начала проинициализировать, перед поиском, rez
      >Ну, типа, *rez = '\0';

      Может, я в си и чайник, но на идиота не похож.
      Если я написал, что числа возвращаются нормально, а строки нет, то так и есть.

      • Функция возвращает только числа :((, !*! genie, 00:09 , 30-Дек-03 (3)
        Ok, etot strtok() call - chto nahoditsya v key? Esche, esli strtok vozvratit NULL, chto budet togda?


        >>Может быть вообще не находит и выдаёт мусор?
        >>Мог бы для начала проинициализировать, перед поиском, rez
        >>Ну, типа, *rez = '\0';
        >
        >Может, я в си и чайник, но на идиота не похож.
        >Если я написал, что числа возвращаются нормально, а строки нет, то так
        >и есть.

      • Функция возвращает только числа :((, !*! SergCh, 09:24 , 30-Дек-03 (4)
        Да не надо так нервничать, Просто ты не обрабатываешь исключительные ситуации.
        Вот я и предположил, что возможно дело вней (люди не боги, могут и опечататься).

        Ну и впринципе, правильней всё таки, пользоваться переменными проинициализировав их.

        PS Ну, и если тебе не нравятся мои советы, я не заставляю ими пользоваться, просто проигнорируй.

        • Функция возвращает только числа :((, !*! gsoftadmin, 10:00 , 30-Дек-03 (5)
          >Да не надо так нервничать, Просто ты не обрабатываешь исключительные ситуации.
          >Вот я и предположил, что возможно дело вней (люди не боги, могут
          >и опечататься).
          >
          >Ну и впринципе, правильней всё таки, пользоваться переменными проинициализировав их.
          >
          >PS Ну, и если тебе не нравятся мои советы, я не заставляю
          >ими пользоваться, просто проигнорируй.

          Извини. Погорячился.
          Задачка решена.
          Кому интересно - http://clubpro.spb.ru/ubb/Forum14/HTML/001019.html





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру