kratos23 Опубликовано 18 декабря, 2015 Поделиться Опубликовано 18 декабря, 2015 (изменено) У меня проблема.Не сохраняются данные в ini файл на Android. На Windows всё работает. А на andoid нет. В чём дело? Проект прикрепил. spokenCountingTraning.zip Изменено 18 декабря, 2015 пользователем kratos23 Цитата Ссылка на комментарий
0 Rusland Опубликовано 18 декабря, 2015 Поделиться Опубликовано 18 декабря, 2015 (изменено) Путь неправильный. Надо как-то так iniFile := TIniFIle.Create(TPath.Combine(TPath.GetDocumentsPath, 'settings.ini')); Изменено 18 декабря, 2015 пользователем Rusland Цитата Ссылка на комментарий
0 kratos23 Опубликовано 18 декабря, 2015 Автор Поделиться Опубликовано 18 декабря, 2015 Путь неправильный. Надо как-то так iniFile := TIniFIle.Create(TPath.Combine(TPath.GetDocumentsPath, 'settings.ini')); Так и делаю. Вроде. Цитата Ссылка на комментарий
0 Rusland Опубликовано 18 декабря, 2015 Поделиться Опубликовано 18 декабря, 2015 (изменено) Можно узнать для чего это? self.FilePath:=Path; if not(FileExists(Path)) then begin AssignFile(FI, Path); rewrite(FI); CloseFile(FI); end; self.IniFile := TIniFile.create(Path); И где само сохранение происходит? Вообще конечно вы молодец, выложили весь проект и ищи где хочешь ))) Изменено 18 декабря, 2015 пользователем Rusland Цитата Ссылка на комментарий
0 kratos23 Опубликовано 18 декабря, 2015 Автор Поделиться Опубликовано 18 декабря, 2015 Можно узнать для чего это? self.FilePath:=Path; if not(FileExists(Path)) then begin AssignFile(FI, Path); rewrite(FI); CloseFile(FI); end; self.IniFile := TIniFile.create(Path); Проверяю существует ли файл, если нет, то создаю. Цитата Ссылка на комментарий
0 kratos23 Опубликовано 18 декабря, 2015 Автор Поделиться Опубликовано 18 декабря, 2015 Можно узнать для чего это? self.FilePath:=Path; if not(FileExists(Path)) then begin AssignFile(FI, Path); rewrite(FI); CloseFile(FI); end; self.IniFile := TIniFile.create(Path); И где само сохранение происходит? Вообще конечно вы молодец, выложили весь проект и ищи где хочешь ))) Само сохранение здесь:save.zip Цитата Ссылка на комментарий
0 umkes Опубликовано 18 декабря, 2015 Поделиться Опубликовано 18 декабря, 2015 //============================================================================== procedure TKTasksApi.SaveIntoIniFile; //------------------------------------------------------------------------------ var IniFile : TIniFile; begin {$IFDEF MSWINDOWS} IniFile := TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini')); {$ENDIF} {$IFDEF ANDROID} IniFile:=TIniFile.Create(System.IOUtils.TPath.GetDocumentsPath+'/config.ini'); {$ENDIF} try IniFile.WriteString('Tasks','UserName', fmTasks.cbTabSettingsUser.Selected.Text); IniFile.WriteString('Tasks','Address', fmTasks.edtTabSettingsAddress.Text); finally IniFile.free; end{ try..finally }; end{ procedure TKTasksApi.SaveIntoIniFile }; Всегда работал такой код. Brovin Yaroslav 1 Цитата Ссылка на комментарий
0 kratos23 Опубликовано 18 декабря, 2015 Автор Поделиться Опубликовано 18 декабря, 2015 Заметил странную вещь на windows в отладчике FFileName заполнено. А на android нет, возможно с этим что-то связано? Цитата Ссылка на комментарий
0 kratos23 Опубликовано 18 декабря, 2015 Автор Поделиться Опубликовано 18 декабря, 2015 Да, так и есть проблема именно в этом. Как это исправить? Цитата Ссылка на комментарий
0 Rusland Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 (изменено) Попробуйте как посоветовал umkes {$IFDEF ANDROID} IniFile:=TIniFile.Create(System.IOUtils.TPath.GetDocumentsPath+System.SysUtils.PathDelim+dirName+System.SysUtils.PathDelim+FileName); {$ENDIF} Изменено 21 декабря, 2015 пользователем Rusland Цитата Ссылка на комментарий
0 Cody71727172 Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 (изменено) Было нечто похожее Может быть дело в том, что в XE8 путь к документам это "GetSharedDocumentsPath", а в Seattle уже "GetDocumentsPath" Изменено 21 декабря, 2015 пользователем Cody71727172 Rusland 1 Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 (изменено) Было нечто похожее Может быть дело в том, что в XE8 путь к документам это "GetSharedDocumentsPath", а в Seattle уже "GetDocumentsPath" В Seattle поменялся путь к документам, и то что в GetDocumentsPath не видно - ибо не Shared теперь, в файловом менеджере не видно, однако файлы пишутся, проверяли их на чтение? В XE7 GetSharedDocumentsPath выводил в Android/data/com.embarcadero.имя, в Seattle путь в папку Documents в корне. GetDocumentsPath в Seattle указывает в Android/data/com.embarcadero.имя и файлы скрытые. Еще момент, были проблемы с файлами после перехода с XE7, если работа с файлами в конструкторе формы, помог вынос в OnCreate, что-то там поменялось. Изменено 21 декабря, 2015 пользователем Камышев Александр Cody71727172 1 Цитата Ссылка на комментарий
0 Cody71727172 Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 Было нечто похожее Может быть дело в том, что в XE8 путь к документам это "GetSharedDocumentsPath", а в Seattle уже "GetDocumentsPath" В Seattle поменялся путь к документам, и то что в GetDocumentsPath не видно - ибо не Shared теперь, в файловом менеджере не видно, однако файлы пишутся, проверяли их на чтение? В XE7 GetSharedDocumentsPath выводил в Android/data/com.embarcadero.имя, в Seattle путь в папку Documents в корне. GetDocumentsPath в Seattle указывает в Android/data/com.embarcadero.имя и файлы скрытые. Конечно проверял, при порте проекта с XE8 на Seattle - и запись, и чтение у меня идёт по "GetDocumentsPath", проект работает, всё пишется-читается Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 (изменено) Было нечто похожее Может быть дело в том, что в XE8 путь к документам это "GetSharedDocumentsPath", а в Seattle уже "GetDocumentsPath" В Seattle поменялся путь к документам, и то что в GetDocumentsPath не видно - ибо не Shared теперь, в файловом менеджере не видно, однако файлы пишутся, проверяли их на чтение? В XE7 GetSharedDocumentsPath выводил в Android/data/com.embarcadero.имя, в Seattle путь в папку Documents в корне. GetDocumentsPath в Seattle указывает в Android/data/com.embarcadero.имя и файлы скрытые. Конечно проверял, при порте проекта с XE8 на Seattle - и запись, и чтение у меня идёт по "GetDocumentsPath", проект работает, всё пишется-читается автор, kratos23 проверял на чтение? и еще сразу уточнить об чем речь, какая эмбаркадеро? Изменено 21 декабря, 2015 пользователем Камышев Александр Цитата Ссылка на комментарий
0 Cody71727172 Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 Было нечто похожее Может быть дело в том, что в XE8 путь к документам это "GetSharedDocumentsPath", а в Seattle уже "GetDocumentsPath" В Seattle поменялся путь к документам, и то что в GetDocumentsPath не видно - ибо не Shared теперь, в файловом менеджере не видно, однако файлы пишутся, проверяли их на чтение? В XE7 GetSharedDocumentsPath выводил в Android/data/com.embarcadero.имя, в Seattle путь в папку Documents в корне. GetDocumentsPath в Seattle указывает в Android/data/com.embarcadero.имя и файлы скрытые. Конечно проверял, при порте проекта с XE8 на Seattle - и запись, и чтение у меня идёт по "GetDocumentsPath", проект работает, всё пишется-читается автор, kratos23 проверял на чтение? и еще сразу уточнить об чем речь, какая эмбаркадеро? С выяснения версии нам следовало бы начать Цитата Ссылка на комментарий
Вопрос
kratos23
У меня проблема.Не сохраняются данные в ini файл на Android.
На Windows всё работает. А на andoid нет.
В чём дело? Проект прикрепил.
spokenCountingTraning.zip
Изменено пользователем kratos23Ссылка на комментарий
14 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.