|
#1
|
|||
|
|||
Чтение ini файла
Задача есть ini файл неопределенной длинны:
[file] 1=file1.txt 2=file2.txt необходимо считать этот файл до конца и вывести названия всех файлов на экран. Проблема: не могу найти как считывать этот файл пока он не кончится. |
#2
|
||||
|
||||
ReadSection вроде бы.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
Можно так
Код:
uses... IniFiles; ... Var ini:TInIFile; ... Процедура например кнопка клик var i:Integer; begin ini:=TIniFile.Create('имя ини включая путь'); For i := 1 to Максимум строк do begin Memo1.lines.add(Ini.readstring('Секция',inttostr(i),'Если строка не найдена')); end; ini.free; end; Это считывает строки где ключ равен от 1 до максимум строк Я лично делаю так. Сам ини Код:
[Секция] MaxKey=3 key0=0 key1=0 key2=0 key3=0 Вот считывание Код:
uses... IniFiles; ... Var ini:TInIFile; ... procedure TForm1.Button1Click(Sender: TObject); var i:Integer; begin ini:=TIniFile.Create('имя ини включая путь'); For i := 1 to ini.readinteger('Секция','MaxKey',7) do begin Memo1.lines.add(inttostr(i)+' Строка = '+Ini.readstring('Секция','Key'+inttostr(i),'Если строка не найдена')); end; ini.free; end; Последний раз редактировалось AlexandrV, 23.06.2013 в 13:06. |
#4
|
||||
|
||||
ReadSection и делает то же, что и твой
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 23.06.2013 в 13:02. |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
alexusankov (24.06.2013)
|
#5
|
||||
|
||||
ТС, если нужно усложнить код, пританцовывая с бубном, то рекомендую : регулярные выражения
Если же нет, то все гораздо проще : Код:
var F : TextFile; S : String; begin AssignFile(F,'c:\dd.ini'); Reset(F); // Читаем файл построчно, в цикле , где : while NOT EoF(F) do begin // EoF - конец файла, (End Of File). В цикле - ReadLn(F,S); // берем строку, и if Pos('=',S) <> 0 then ListBox1.Items.Add( Copy( S, Pos( '=',S ) + 1, Length(S) - Pos('=',S) ) ); //если в ней есть символ '=', то копируем часть строки ПОСЛЕ симовла '=' end; CloseFile(F); end; Последний раз редактировалось alexusankov, 24.06.2013 в 09:00. |