Fichiers

La classe cFichier

C’est la classe de base pour l’accès aux fichiers. Oublions les valeurs de retour -1 (par exemple pour fOuvre) ! Les fonctions ici renvoient des booléens (l’entier d’ouverture du fichier étant géré de manière transparente dans la classe).

La classe cFichierTexte

Comme son nom l’indique, cette classe permet de manipuler les fichiers textes (ANSI et Unicode).  Elle possède d’ailleurs une détection du format à l’ouverture d’un fichier.

La méthode de lecture charge un gros bloc et le parcours selon un séparateur (un retour-chariot par exemple), méthode réputée min.30% plus rapide que les fLitLigne. Pour exploiter chaque ligne lue, passez le nom de votre procédure en paramètre de la méthode Parcours. Recevez, dans votre procédure, la ligne lue, le nombre d’octets lus et la taille du fichier (ces deux dernières valeurs pour faire une jauge de progression par exemple). Renvoyez Vrai pour poursuivre le parcours, Faux pour l’interrompre. Exemple :

MaProcédureCallBack(sLigne est une chaine,nLu est un entier,nTotal est un entier)
//ici mon traitement, exemple : ListeAjoute(LST_Item, sLigne)
Renvoyer Vrai

La classe cFichierTexte est utilisée dans cLog et cTrace du framework.

La classe cFichierExcel

Cette classe permet d’ouvrir et de créer des fichiers au format XML compatible Excel.

Cette classe permet une personnalisation fine des styles en donnant facilement accès aux couleurs (de texte, de bord et de fond), à la taille de caractère, au gras/souligné/italique et barré, aux alignements horizontaux et verticaux, aux formats de cellule, aux orientations de texte, aux fusions, … tout cela sans avoir installé Excel sur le poste ni devoir utiliser un champ Tableur. Pratique pour des services Windows ou webservices.

Exemple :

PROCÉDURE Export(sNomFichier est une chaîne)
oExcel est un objet dynamique
oExcel = allouer un objet "cFichierExcel"(10,10.8,12.57)
nNumFeuille,nLigneTotal sont des entiers
sFormule,sDate sont des chaines
 
sMasque est une chaîne = "#,##0.00\ ""$""_);\(#,##0.00\ ""$""\)"
nFormatCelluleMonétaire est un entier = 6	//_FormatCelluleMonétaire
nFormatCellulePourcent est un entier = 8
nFormatCelluleNumérique est un entier = 2
nFormatCelluleDate est un entier = 5
sFormatBordContinu est une chaîne = "Continuous"
 
sFichier est une chaîne = fSélecteur("", sNomFichier ,"Choisissez le nom du fichier d'export","Fichiers XML (*.XML)" + TAB + "*.XML", "*.XML", fselCrée + fselExiste)
SI pas sFichier~="" ALORS 
	SI oExcel.bCrée(sFichier) ALORS
		nNumFeuille=oExcel.nFeuilleAjoute("Ma première feuille")
		SI nNumFeuille>0 ALORS
			oExcel.p_nFeuilleEnCours(nNumFeuille)
			oExcel.CelluleValeur("A1","Titre1");oExcel.CelluleGras("A1",Vrai);oExcel.ColonneLargeur("A",15)																										
			oExcel.CelluleValeur("B1","Titre2");oExcel.CelluleGras("B1",Vrai);oExcel.ColonneLargeur("B",30)
			POUR TOUTE LIGNE nLigne de TABLE_Données
				oExcel.CelluleValeur("A"+(nLigne+1),TABLE_Données[nLigne].COL_Données1)
				oExcel.CelluleValeur("B"+(nLigne+1),TABLE_Données[nLigne].COL_Données2)
			FIN
			sFormule="=SUM(R[-"+(TABLE_Données..Occurrence+1)+"]C2:R[-1]C2)";nLigneTotal=(TABLE_Données..Occurrence+2)
			oExcel.CelluleFormule("C"+nLigneTotal,sFormule);oExcel.CelluleFormat("B"+nLigneTotal,nFormatCelluleMonétaire);oExcel.CelluleMasque("B"+nLigneTotal,sMasque)
		SINON
			ERREUR("Impossible de créer la première feuille",oExcel.m_sErreur)
		FIN
	SINON
		ERREUR(oExcel.m_sErreur)
	FIN
FIN