Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# enregistrer une variable en local dans un fichier

Envoyé par : Utilisateur anonyme

Date : 19/07/2004 15:40

Bonjour,

j'ai appris après moultes tentatives qu'on ne pouvait pas créer de cookie s avec Xul. Que ne fut pas ma surprise, que dis je mon étonnement.

En fait je désire enregistrer une variable en local sur le dur de l'ordinateur pour garder en mémoire sa valeur de session en session et pourquoi pas changer cette valeur.

Savez vous comment je pourrais faire avec le moins de manip possibles ?

merci d'avance.

# Re: enregistrer une variable en local dans un fichier

Envoyé par : laurentj

Date : 21/07/2004 14:27

ton appli xul, elle est installée en locale ou est distante, sur un serveur web ?

# Re: enregistrer une variable en local dans un fichier

Envoyé par : Utilisateur anonyme

Date : 26/07/2004 16:31

Si ça peut t'aider :

xul

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window
   id="mywindow"
   title="Find Files"
   orient="horizontal"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="cap.js"/>
<grid flex="1">
 <columns>
   <column flex="1"/>
   <column/>
 </columns>
 <rows>
   <row>
<box height="80">
	<textbox id="blog" flex="1"  multiline="true"/>
	<button id="save" label="save" oncommand="save();"/>
</box>
   </row>
<row flex="1">  
		<tabbox flex="1">
		  <tabs>
		    <tab label=" Page 1 "/>
		    <tab label=" Page 2 "/>
		  </tabs>
		  <tabpanels flex="1">
		    <tabpanel id="mailtab" flex="1">
				  <iframe id="content-1" src="1.html" height="100%" flex="1"/>
		    </tabpanel>
		    <tabpanel id="newstab"  flex="1">
				  <iframe id="content-1"  flex="1"  src="2.html"/>
		    </tabpanel>
		  </tabpanels>
		</tabbox>
</row>
</rows>
</grid>
<script>
read();
</script>
</window>

js

/* Open flags 
#define PR_RDONLY       0x01
#define PR_WRONLY       0x02
#define PR_RDWR         0x04
#define PR_CREATE_FILE  0x08
#define PR_APPEND       0x10
#define PR_TRUNCATE     0x20
#define PR_SYNC         0x40
#define PR_EXCL         0x80
*/
/*
** File modes ....
**
** CAVEAT: 'mode' is currently only applicable on UNIX platforms.
** The 'mode' argument may be ignored by PR_Open on other platforms.
**
**   00400   Read by owner.
**   00200   Write by owner.
**   00100   Execute (search if a directory) by owner.
**   00040   Read by group.
**   00020   Write by group.
**   00010   Execute by group.
**   00004   Read by others.
**   00002   Write by others
**   00001   Execute by others.
**
*/
var savefile = "c:\\mozdata.txt";
// Ecriture en local.
function save() {
try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} 
   catch (e) {
	alert("Permission de sauvegarde refusée.");
}
var file = Components.classes["@mozilla.org/file/local;1"]
	.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( savefile );
if ( file.exists() == false ) {
	alert( "Creating file... " );
	file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
}
var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
	.createInstance( Components.interfaces.nsIFileOutputStream );

outputStream.init( file, 0x04 | 0x08 | 0x20, 420, 0 );
var output = document.getElementById('blog').value;
var result = outputStream.write( output, output.length );
outputStream.close();
}
// Lecture en local.
function read() {
try {
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
	alert("Permission to read file was denied.");
}
var file = Components.classes["@mozilla.org/file/local;1"]
	.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( savefile );
if ( file.exists() == false ) {
	alert("File does not exist");
}
var is = Components.classes["@mozilla.org/network/file-input-stream;1"]
	.createInstance( Components.interfaces.nsIFileInputStream );
is.init( file,0x01, 00004, null);
var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
	.createInstance( Components.interfaces.nsIScriptableInputStream );
sis.init( is );
var output = sis.read( sis.available() );
document.getElementById('blog').value = output;
}

A+

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.