| 
| 
 | Вопрос # 1 705/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Подскажите пожалуйста как можно удалить все записи (секции) в ini-файле. 
|  |   Вопрос задал: GAZ (статус: Посетитель)Вопрос отправлен: 18 июня 2008, 17:31
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Мережников Андрей Здравствуйте, GAZ!Можно сделать,например, так.
 При успешном удалении всех секций функция вернет true.
 Приложение:Переключить в обычный режим function DelSectionIni(const FN:string):boolean;var InFil:TIniFile;      i:integer;      ts:TStrings;begin  Result:=true;  try  InFil:=TIniFile.Create(FN);  ts:=TStrings.create;  try     try     ReadSections(ts);     for i:=0 to ts.count-1     do EraseSection(ts.Strings[i]);     except        Result:=false;     end;  finally    InFil.free;    ts.free;  end;  except    Result:=false;  end;end;
|  | Ответ отправил: Мережников Андрей (статус: Абитуриент)Время отправки: 18 июня 2008, 18:08
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 8; последнее сообщение — 18 июня 2008, 23:04; участников в обсуждении: 5. 
|   | GAZ (статус: Посетитель), 18 июня 2008, 18:24 [#1]:странно я думал что есть что то стандартное |  
|   | Dron (статус: Студент), 18 июня 2008, 18:51 [#2]:А вы файл удалите, да и всё. Результат-то один и тот же. Зато по времени - явно быстрее. С уважением. |  
|   | GAZ (статус: Посетитель), 18 июня 2008, 18:55 [#3]:А он так же как обычный удаляется |  
|   | Dron (статус: Студент), 18 июня 2008, 19:02 [#4]:А он что, не файл что ли? За что вы его так обидели? Все файлы, вообще-то, одинаковы и подход ко всем один
   С уважением. |  
|   | iPharaon (статус: 1-ый класс), 18 июня 2008, 19:11 [#5]:Можно так: 
 procedure TForm1.Button1Click(Sender: TObject);
 var
 ini:TInifile;
 str:TStringList;
 i:integer;
 begin
 ini:=TIniFile.Create('C:\123.ini');
 Str:=TStringList.create;
 ini.ReadSections(Str);
 for i:=0 to str.count-1 do
 ini.EraseSection(str.Strings[i]);
 str.free;
 ini.free;
 end;
 
 Можно так:
 
 procedure TForm1.Button1Click(Sender: TObject);
 var
 f:textfile;
 begin
 AssignFile(f,'C:\123.ini');
 rewrite(f);
 writeln(f,'');
 closefile(f);
 end;
 
 Можно так:
 DeleteFile('C:\123.ini');
 |  
|   | Мережников Андрей (статус: Абитуриент), 18 июня 2008, 19:26 [#6]:действительно, можно по разному. я потому и написал в своем ответе - например. iPharaon, а для чего во втором, приведенном Вами варианте строка writeln(f,''); можно ведь и без нее.   |  
|   | iPharaon (статус: 1-ый класс), 18 июня 2008, 19:34 [#7]:Не знаю =) Главное работает... Я таким методом редко пользуюсь. |  
|   | Вадим К (статус: Академик), 18 июня 2008, 23:04 [#8]:Мда, удалять содержимое файл таким образом... Для ини файла можно просто удалить его вообще. Никакой ошибки потом при открытии не будет. А по попытке записать что то в него, он будет создан.
 А удалить файл, как не странно, можно функцией DeleteFile(имя)
 Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |