PDA

Ver la Versión Completa : Como se hace en android delphi para guardar un fichero de texto y recuperarlo.


cocute
18-11-2013, 15:22:14
Como se hace en android delphi para guardar un fichero de texto por ejemplo
y luego recuperarlo,
he intentado pero no me aclaro con el sistema de los directorios de android y me da error de permisos y directorios

memo1.lines.savetofile('test.txt');
memo1.lines.loadfromfile('test.txt');

alguien sabe como manejar los directorios el path y dema´s....
se que hay que poner la barra del reves \


Solucionado con esto va
memo1.lines.savetofile('/sdcard/Download/test.txt');


gracias

dec
18-11-2013, 15:28:57
Hola,

Toca empollarse la unidad "System.IOUtils". Por ejemplo, pareciera que podrías escribir sin problemas en "System.IOUtils.TPath.GetHomePath" (http://docwiki.embarcadero.com/Libraries/XE5/en/System.IOUtils.TPath.GetHomePath). Aquí hay un artículo muy curioso en la wiki de Embarcadero titulado: Standard RTL Path Functions across the Supported Target Platforms (http://docwiki.embarcadero.com/RADStudio/XE5/en/Standard_RTL_Path_Functions_across_the_Supported_Target_Platforms). Seguramente toca también estar al tanto de los permisos correspondientes, no sólo en el sentido de que habrá directorios en que no podamos escribir, pero, en que acaso necesitemos permisos (en el "Android Manifest") tal vez incluso hasta para leer...

quimeras
18-11-2013, 17:48:53
Tal y como comenta dec, se podría tambien hacer de esta forma:

Uses System.IOUtils;

Memo1.Lines.SaveToFile(TPath.Combine(TPath.GetDownloadsPath, 'test.txt'));

Memo1.Lines.LoadFromFile(TPath.Combine(TPath.GetDownloadsPath, 'test.txt'));

cocute
18-11-2013, 18:01:52
o quizás lo ideal siendo un fichero que se va a borrar mejor meterlo en GetTempPath ¿no?
y si se tratase de un fichero de configuración del programa en que directorio se mete?
y que no pueda interferir con ficheros guardados por otras apps que se pudiesen llamr igual
en GetHomePath ¿no?

quimeras
20-11-2013, 10:35:03
y si se tratase de un fichero de configuración del programa en que directorio se mete?
No conozco la respuesta correcta, a ver si alguien nos puede ayudar. Tampoco tengo muy claro en que carpeta del dispositivo se meten los ficheros usando el Deploy de Delphi.

Yo he metido una base de datos sqlite en GetDocumentsPath y funciona correctamente pero luego soy incapaz de encontrar el fichero en el dispositivo (lo tengo sin rootear supongo que estará en una carpeta solo accesible al usuario root).

barakuda
27-11-2013, 05:02:09
No conozco la respuesta correcta, a ver si alguien nos puede ayudar. Tampoco tengo muy claro en que carpeta del dispositivo se meten los ficheros usando el Deploy de Delphi.

Yo he metido una base de datos sqlite en GetDocumentsPath y funciona correctamente pero luego soy incapaz de encontrar el fichero en el dispositivo (lo tengo sin rootear supongo que estará en una carpeta solo accesible al usuario root).

No se si aun te puede servir pero en mi caso:
Yo lo localizo en:
Equipo\Xperia Z\Almacenamiento interno\Android\data\com.embarcadero.ConSQLite\files
donde .ConSQLite es el nombre de mi proyecto, yo use GetSharedDocumentsPath
Link (http://www.clubdelphi.com/foros/showthread.php?t=84359)

quimeras
27-11-2013, 20:18:36
Gracias barakuda (http://www.clubdelphi.com/foros/member.php?u=44829) lo probaré :)

Casimiro Notevi
18-11-2014, 17:51:50
Hola a todos. Soy nuevo aquí y no he encontrado una zona para presentarme, así que pido disculpas de antemano si lo estoy haciendo mal.

Aprovecho este tema porque estoy usando TPath.combine añadiendo system.IOUTils en la sección uses del formulario y me da un error al compilar diciendo que TPath no tiene ese método. En cambio si pongo system.IOUTils.Tpath.Combine, si funciona. ¿Alguien sabe qué puedo estar haciendo mal?

Muchas gracias

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)

bazilator
18-11-2014, 18:13:00
Si, pero creo que no las he debido entender bien... ¿Qué información puede ser útil para dar más idea del problema?

Casimiro Notevi
18-11-2014, 18:20:40
Si, pero creo que no las he debido entender bien... ¿Qué información puede ser útil para dar más idea del problema?

Hola, bazilator, por favor, crea un nuevo hilo con tu duda, es que tu pregunta no aporta nada a solucionar este hilo.
Gracias por tu colaboración... y bienvenido :)

bazilator
18-11-2014, 18:26:08
Así haré. Perdonad!

Gracias!

Casimiro Notevi
18-11-2014, 18:31:43
Eres nuevo, estas cosas ocurren. Gracias :)