Вы явно не поняли, как работают файлы INI.Что если Джон и Дейв живут в Нью-Йорке?В файле INI не может быть двух ключей с одинаковым именем.(Кроме того, вы не должны полагаться на порядок строк в каждом разделе.)
Таким образом, вам необходимо переосмыслить способ сохранения ваших данных.Очень простое решение - использовать простой текстовый файл, в котором каждая строка является элементом в вашей базе данных, а поля разделены, например, вертикальной линией (|):
John|Uk|London|barlystreet
Mike|Spain|Madrid|eduardostrata
Emma|USA|New York|1st Avenue.
Какчитать этот файл?Ну, это тривиально, и вы должны знать, как это сделать.Если у вас есть очень специфический вопрос, то не стесняйтесь спрашивать.
Для чего нужны INI-файлы
Но для чего тогда INI-файлы?Что ж, типичное применение INI-файла - сохранение настроек программы.Например, когда вы выходите из текстового редактора, он может сохранить настройки в settings.ini:
[Font]
Name=Consolas
Size=10
[Behaviour]
AutoIndent=1
AutoReplace=1
AutoBrackets=1
BracketHighlight=1
SyntaxHighlight=1
[Window]
Width=800
Height=600
Maximized=0
и т. Д.Это делается
WriteString('Font', 'Name', Editor.Font.Name);
WriteInteger('Font', 'Size', Editor.Font.Size);
и т. Д.И при следующем запуске приложения оно прочитает файл для восстановления настроек:
Editor.Font.Name := ReadString('Font', 'Name', 'Consolas');
Editor.Font.Size := ReadInteger('Font', 'Size', 10);
и т. Д., Где последние параметры являются значениями по умолчанию (в случае, если поле отсутствует в INIфайл).Обратите внимание, что в каждом разделе ключи уникальны (и должны быть), и что нас не волнует относительный порядок ключей внутри каждого раздела.