Un source-code pour extraire des fichiers les ressources des strings



Ecrit le Jeudi 15 par denis Bertin (c) Beelog v0.1.
file name =«exporteur_de_string»
Produit le fichier suivant C:\_php\cook11.php
procedure tdiskwindow.Export_php_res_string(filename_fichier_ressource:string); {(c) db}
	var fin:text; {input traduction}
		 Counter:integer;
		 nom_du_flux_out:pc100;
		 ipc,apc:array[0..512] of char; {this is enougth}
		 s:string;
		 out_buffer:tbufstream;
		 pointer_sur_le_premier_guillement:pchar;
			pointer_sur_le_second_guillement,pointer_en_cours:pchar;
	begin
	{extraire le vocabulaire d'un fichier ressource}
	box(self.hwindow,'Export_php_res_string begin');

	{//Compter le nombre de ligne}
	Counter:=0;
	Assign(Fin, filename_fichier_ressource);
	FileMode := 0;
	Reset(Fin);
	While not(eof(fIn)) do
		begin
		inc(counter);
		readln(fin,s); {Lire une ligne pour arrivé à la fin du fichier.}
		end;
	Close(Fin);

	{Affichage du nombre de ligne}
	inttopchar(counter,apc); box(0,apc);

	{Initialisation du flux_out}
	StrPCopy(nom_du_flux_out,filename_fichier_ressource);
	pointer_en_cours:=strpos(nom_du_flux_out,'.');
	if pointer_en_cours=nil then
		begin
		box(0,'Erreur pas de point');
		exit;
		end;

	if pointer_en_cours<>nil then
		begin
		inc(pointer_en_cours);
		pointer_en_cours^:=#0;
		strcat(pointer_en_cours,'php');
		end;

	box(self.hwindow,nom_du_flux_out);

	out_buffer.init(nom_du_flux_out,stcreate,2000);

	{//extraction du vocabulaire}
	Counter:=0;
	Assign(Fin, filename_fichier_ressource);
	FileMode := 0;
	Reset(Fin);
	counter:=0;
	While not(eof(fIn)) do
		begin
		readln(fin,s); {Lire une ligne pour l'exporter.}
		StrPCopy(apc,s);
		{dans le cas d'un contrôle extraire la chaine}
		if strpos(apc,'CONTROL')<>nil then
			begin
			pointer_sur_le_premier_guillement:=strpos(apc,wutil.kpc_quote);
			if pointer_sur_le_premier_guillement<>nil then
				begin {first}
				pointer_en_cours:=pointer_sur_le_premier_guillement;
				inc(pointer_en_cours);
				pointer_sur_le_second_guillement:=strpos(pointer_en_cours,wutil.kpc_quote);
				if pointer_sur_le_second_guillement<>nil then
					begin {string trouvé}
					pointer_sur_le_second_guillement^:=#0;
					{Ajouter le séparateur}
					if Strlen(pointer_en_cours)<>0 then
						begin
						inc(counter); {seulement dans ce cas}
						inttopchar(counter,ipc);
						{exception si &}
						if pointer_en_cours^='&' then inc(pointer_en_cours);
						strcat(strcat(ipc,wutil.kpc_minus),pointer_en_cours);
						{Ecrire la chaine dans le flux}
						strcat(strcat(ipc,'
'),CRLF); {retour chariot} out_buffer.write(ipc,strlen(ipc)); end; end; {string trouvé} end; {first} end else begin end; end; Close(Fin); Out_buffer.done; end; {tdiskwindow.Export_php_res_string} {(c) db}