Ingalime Опубликовано 20 марта, 2020 Поделиться Опубликовано 20 марта, 2020 Здравствуйте. Мне надо хранить определенную цифру между запусками приложения. Самый простой способ это ini файл. А как его этот ini файл хранить в ios приложении? Спасибо. Цитата Ссылка на комментарий
0 juppy Опубликовано 20 марта, 2020 Поделиться Опубликовано 20 марта, 2020 На мой скромный взгляд, самый простой сопсоб - это SQLite. Но можно и в ini. На мобильных платформах работает все как обычно. iniMapFile: TIniFile; iniMapFilePath := TPath.Combine(TPath.GetDocumentsPath, 'ИМЯФАЙЛА.ini'); IniFile := TIniFile.Create(iniMapFilePath); Можно и в путь приложения сохранять. Ingalime 1 Цитата Ссылка на комментарий
0 Ingalime Опубликовано 20 марта, 2020 Автор Поделиться Опубликовано 20 марта, 2020 (изменено) А в проекте ios как правильно добавить ini файл и обращаться к нему? Он должен быть в ресурсах? Изменено 20 марта, 2020 пользователем Ingalime Цитата Ссылка на комментарий
0 juppy Опубликовано 20 марта, 2020 Поделиться Опубликовано 20 марта, 2020 (изменено) Нет не нужно его засовывать в ресурс. Создаете его при развертывании приложения как обычно. Если нужно сделать начальные установки, то в методах класса TIniFile есть Read*** который возвращает значения по умолчанию в качестве параметра если нечего читать: Settings.ZonesColor := IniFile.ReadInteger('Settings','ZonesColor',TAlphaColors.Navy); В данном случае, если в группе Settings не найдется параметр ZonesColor, то ReadInteger вернет значение Navy, если найдет вернет тот параметр, который там прописан. Я обычно при развертывании создаю INI файл с начальными установками, сохраняю его и потом с ним работаю. Изменено 20 марта, 2020 пользователем juppy Ingalime 1 Цитата Ссылка на комментарий
0 Ingalime Опубликовано 20 марта, 2020 Автор Поделиться Опубликовано 20 марта, 2020 (изменено) Я с ini в vcl имею опыт работы. Я не до конца понимаю как с ini работать в ios проекте. Т.е. мне при старте надо создать этот файл? А где его создовать? Можно пример? Спасибо. Изменено 20 марта, 2020 пользователем Ingalime Цитата Ссылка на комментарий
0 juppy Опубликовано 20 марта, 2020 Поделиться Опубликовано 20 марта, 2020 Вот отличное описание для тех, кто ни разу не работал. Там с примерами и прочим блекждеком. http://docwiki.embarcadero.com/Libraries/Rio/en/System.IniFiles.TIniFile http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/IniFiles_TIniFile.html Создание файла и чтение из него данных занимает нематериальное время. Поэтому я делаю так: Создаю сам файл с начальной инициализацией при первом развертывании. В примере - это создание главной формы. И там же потом его читаю но уже созданный. вот конструкция с начальной инициализацией чтением. Цитата procedure TfrmMainForm.ReadSettings; var IniFile: TIniFile; begin if not FileExists( iniMapFilePath ) then begin IniFile := TIniFile.Create(iniMapFilePath); IniFile.WriteBool('Settings','ShowLocation',false); IniFile.DisposeOf; Settings.ShowLocation := false; exit; end; IniFile := TIniFile.Create(iniMapFilePath); Settings.ShowLocation := IniFile.ReadBool('Settings','ShowLocation', false); IniFile.DisposeOf; end; Ingalime 1 Цитата Ссылка на комментарий
0 Сергей Сергеев Опубликовано 22 марта, 2020 Поделиться Опубликовано 22 марта, 2020 (изменено) В 20.03.2020 в 11:48, Ingalime сказал: Я с ini в vcl имею опыт работы. Я не до конца понимаю как с ini работать в ios проекте. Т.е. мне при старте надо создать этот файл? А где его создовать? Можно пример? Спасибо. у меня приложение работает так и в Андроид и Иос в FormShow - вызываю Read, при первом запуске файла нет, ничего не заполняется. При первом заполнении вручную полей и попытке входа по кнопке - делаю сохранение Write При следующем запуске - файл уже есть и параметры входа считаются Для создания файла со значениями "по умолчанию" можно сделать в Read - try - Except ( добавил ) - но не проверял Цитата procedure TFormMain.FormReadState(Sender: TObject); var Ini: TIniFile; begin ini := TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'fdw.ini')); try try EditName.Text := Ini.ReadString( 'Main', 'Name', '' ); EditOtch.Text := Ini.ReadString( 'Main', 'MName', '' ); EditDR.Text := Ini.ReadString( 'Main', 'DR', '' ); Except Ini.WriteString( 'Main', 'Name', 'Умолчание' ) ; Ini.WriteString( 'Main', 'MName', 'Умолчание' ) ; Ini.WriteString( 'Main', 'DR', '01.01.1980') ; end finally Ini.Free; end; end; Цитата procedure TFormMain.FormSaveState(Sender: TObject); var Ini: TIniFile; begin ini := TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'fdw.ini')); try Ini.WriteString( 'Main', 'Name', (FrmLogin as TFrameLogin).editName.Text ) ; Ini.WriteString( 'Main', 'MName', (FrmLogin as TFrameLogin).EditOtch.Text ) ; Ini.WriteString( 'Main', 'DR', (FrmLogin as TFrameLogin).EditDR.Text ) ; finally Ini.Free; end; end; Изменено 22 марта, 2020 пользователем Сергей Сергеев Ingalime 1 Цитата Ссылка на комментарий
Вопрос
Ingalime
Здравствуйте. Мне надо хранить определенную цифру между запусками приложения. Самый простой способ это ini файл. А как его этот ini файл хранить в ios приложении? Спасибо.
Ссылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.