C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Научите чайника, Работа с массивом- чтение из файла
Aladdin
Отправлено: 05.12.2003, 16:55


Не зарегистрирован







Люди добрые, мы сами не местные.... smile.gif
Короче пытаюсь я написать config- файл. Для этого создал текстовый
файл в котором строки начинаются с команды. Далее открываю файл
(открывается и читается оный ОК) и пытаюсь в цикле перебрать все
строки:

char buf[20]
do
{
MyFile.seekg(y);
MyFile.getline(buf,20,'\n');
y=MiFile.tellg();
}
while (buf !="MyCommand");

Ну дык ни фига не получается, программа зацикливается.
Наверное здесь еще надо отлавливать EOF, но как ? (эт второй вопрос)
Admin
Отправлено: 05.12.2003, 19:06


Владимир

Группа: Администратор
Сообщений: 1190



Во первых, вот так работает:
CODE

ifstream MyFile("foo.out");
char buf[20];
do
{
 MyFile.getline(buf,20,'\n');
}
while (String(buf) != "MyCommand");


Во-вторых, возможно удобней использовать для чтения/записей строк
свойство строк — SaveToFile() LoadFromFile(),
например у компонента ListBox или Memo.

ListBox1->Items->SaveToFile("foo.out");
ListBox1->Items->LoadFromFile("foo.out");

или создаем для этого свой StringList

CODE

TStringList* Sl = new TStringList();
   Sl->Add("cd c:");
   Sl->Add("del *.*");
   Sl->Add("My Command");
   Sl->SaveToFile("c:\\del.bat");
   delete Sl; Sl = NULL;

и когда надо — считываем строки в него:
(и если надо — помещаем в ListBox)

CODE

 TStringList* Sl = new TStringList();
   Sl->LoadFromFile("c:\\del.bat");
   ListBox1->Items = Sl;
   delete Sl; Sl = NULL;
Aptem
Отправлено: 07.12.2003, 11:38


Мастер участка

Группа: Участник
Сообщений: 349



А я бы использовал TIniFile ! Очень удобная вещь для конфигов.

Вернуться в Вопросы программирования в C++Builder