мне нужно из некого файла прочитать команду и имя файла которое за ней следует например
Код
[autor]=inf.txt
проблем с чтением команд нет а вот проблемы с чтением имени файла возникают.1проблема когда в файле несколько команд вроде все работает а когда 1 неработает.2проблема если ему всетаки удается вытащить имя файла он его вытягивает с символом конца строки будет ли влиять это на открытие файла с таким именем?если будет то как это поправить?Вот текст программы
} for(i=0;i<q-1;i++) ////пытаюсь работать с отдельными строками { if(strstr(c[i],"[inf]")) { p=strstr(c[i],"="); *n=++p; name[0]=*n;/////суда помещается имя файла } if(strstr(c[i],"[autor]")) { p=strstr(c[i],"="); *n=++p; name[1]=*n; } }
вот тут для 2х команд. помогите заставить это работать
volvo
20.03.2008 14:50
Давай-ка ты полностью тот INI-файл, который читаешь, и с которым проблемы.
blackhard
20.03.2008 15:00
Цитата(volvo @ 20.03.2008 10:50)
Давай-ка ты полностью тот INI-файл, который читаешь, и с которым проблемы.
вот с этим.блин чето не прикрепляется файл) ну его содержимое [autor]=inf.txt
volvo
20.03.2008 15:28
Перевод строки после "inf.txt" есть? Если есть - то его надо убрать, потому что fgets читает и его тоже в строку, будет лишний символ, который помешает при работе с файлом... Вот так:
прекрасно выводится имя файла, причем без разницы, есть перевод строки или нет.
blackhard
20.03.2008 15:33
Цитата(volvo @ 20.03.2008 11:28)
Перевод строки после "inf.txt" есть? Если есть - то его надо убрать, потому что fgets читает и его тоже в строку, будет лишний символ, который помешает при работе с файлом... Вот так:
прекрасно выводится имя файла, причем без разницы, есть перевод строки или нет.
спасибо огромное ты меня просто спас
blackhard
20.03.2008 17:01
блин всеравно вылетает гдето в этом месте
if(*st) { c[i++] = strdup(st); }
volvo
20.03.2008 17:06
Подобные претензии не принимаются. Приводи полный текст программы, и собственно, обрабатываемый файл (лучше всего в архиве) - тогда можно о чем-то говорить. Иначе я тебе скажу, что у меня не вылетает в этом месте и что ты будешь делать? Может, у тебя элементарный выход за границы массива происходит...
blackhard
20.03.2008 17:10
Цитата(volvo @ 20.03.2008 13:06)
Подобные претензии не принимаются. Приводи полный текст программы, и собственно, обрабатываемый файл (лучше всего в архиве) - тогда можно о чем-то говорить. Иначе я тебе скажу, что у меня не вылетает в этом месте и что ты будешь делать? Может, у тебя элементарный выход за границы массива происходит...
вот архив и ini токо эта прога не только с ini работает а еще кучу всего делает поэтому вот участок где работа с ini
Добавлено через 3 мин. да и чтобы она читала установки из ini надо в командную строку записать /ini_
volvo
20.03.2008 17:28
Вот расскажи, на что ты надеешься, записывая:
char *c, ... // и потом if(*st) { c[i++] = strdup(st); }
? Куда c указывает у тебя??? Ты ж раньше совершенно правильно делал:
Цитата
char *c[20], ...
- тогда все отрабатывает. Или ты забыл перевести название переменной в верхний регистр?
blackhard
20.03.2008 17:37
Цитата(volvo @ 20.03.2008 13:28)
Вот расскажи, на что ты надеешься, записывая:
char *c, ... // и потом if(*st) { c[i++] = strdup(st); }
? Куда c указывает у тебя??? Ты ж раньше совершенно правильно делал: - тогда все отрабатывает. Или ты забыл перевести название переменной в верхний регистр?
точно у меняж с там большая буду внемательнее с такими вещами
Добавлено через 1 мин. уф... заработало))))
Michael_Rybak
20.03.2008 18:02
М
3. Название темы должно быть информативным. В описании темы указываем язык!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.