GÉNÉRATEUR FICHIER DOC EN HTML

Signaler
Messages postés
637
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
-
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54778-generateur-fichier-doc-en-html

Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
Voila pour enregistrer en UTF-8 :

procedure SaveToUTF8(aStrings: TStrings; aFileName: string);
var
U8:AnsiString;
begin
with TFileStream.Create(aFileName, fmCreate) do
try
U8 := UTF8Encode(aStrings.Text);
Write(U8[1], Length(U8));
finally
Free;
end;
end;
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
#1120 : est-ce que le fichier HTML généré est bien en UTF-8 sans BOM ? (ou en OEM/ISO)

#1500 : il faut jouer avec Close et CloseQuery, peut être voir améliorer la gestion de la sauvegarde.

#1160 : dans le but de standardiser et de réduire les dépendances à Systus, n'oublie pas que même si la finalité c'est l'outils en lui même, le code source doit pouvoir être analyser/compiler par n'importe qui. J'ai tenter de supprimer un max d'appels à Systus mise à part 2 fonctions (CSV) le reste n'est pas vraiment justifié (INI, FRE, etc).

#1150 & #1160 :

Unit XXX;

interface

implementation

{ ... code ... }

initialization
{ executé en entrée de programme }

finalization
{ executé en sortie de programme, peut importe la sortie }

end.

#1100 & #1110 & #1170 : ok :)

#1130 : corriger comme cela alors :
function PremiereLigneFichier(const nomfichier:string; out aFirstLine: string): boolean;
begin
with TStringList.Create do
try
LoadFromFile(nomfichier);
result := Count > 0;
if result then
aFirstLine := Strings[0];
finally
Free;
end;
end;
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
11
f0xi : quelques questions pour affiner !

#1120 (accent)
je l'ai essayé : ça ne fonctionne pas :
j'ai remplacé par exemple "accent(champ); par "champ := escapeText(champ); et quand je lance le html créé j'ai que des "?"
à la compile, ne trouve pas "indent" : spécifique à genHLP ?
le seul que j'utilise est dans la proc ALIGNE et n'est donc pas concerné

#1150 (terminate)
Ne fonctionne pas car je me sers du close pour pouvoir sortir sans sauver avec le clic sur la croix (porte de secours pour mise à jour intempestive des fiches) :
le quitter normal sauve automatiquement

#1160 (objets globaux)
Cela veut-il dire que je n'ai pas le droit d'écrire : INI(L1)
et qu'il faut que l'écrive : L1 := TstringList.Create;
quelle différence ? dans la proc INI(L1), L1 est passé en VAR est fait (à priori) la même chose
idem pour FRE(L1)

par contre j'ai déjà adopté :
#1100 (historique)
#1110 (versions)
#1130 (systus) : j'ai fait un fonction :
//------------------------------------------- Foxy#1130
function PremiereLigneFichier(nomfichier:string):string;
begin
with TStringList.Create do
try
LoadFromFile(nomfichier);
result := Strings[0];
finally
Free;
end;
end;
#1170 : (propriétés Form1)
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
11
#1200 : effectivement j'ai regardé il y a effectivement un problème lorsque l'on fait Control V directement sur les 3 étoiles surlignées : ça coupe les lignes à la taille de la fenêtre
il faut que je voie cela
Afficher les 46 commentaires