1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| procedure TfrmGen.bCreerFichierAleatoireClick(Sender: TObject);
label PasBon;
var FS : TFileStream; NomFichier,sTailleMo,LigAl,invite : string;
TailleOc,code,numLig : integer;
function LgAleat : integer; // Longueur Aléatoire
begin Result:=Random(98); end;
function LigneAleat(Lg : integer) : string; // Texte Aléatoire
var i : integer;
begin Result:='';
for i:=1 to Lg
do Result:=Result + chr(67 +Random(26));
end;
begin NomFichier:=edNomFichier.text;
if FileExists(NomFichier)
then begin sms(NomFichier+' : Existe déjà. Autre nom'); EXIT; end;
FS := TFileStream.Create(NomFichier, fmCreate);
invite := 'Entrer sa taille en Mo : ';
PasBon :
sTailleMo:= InputBox('Créer Fichier Aleatoire + Doublons', invite, '');
val(sTailleMo,TailleOc,code);
if code<>0 then
begin invite:='... taille en Mo = valeur entière :'; goto PasBon; end;
TailleOc := TailleOc*1024*1024;
Randomize;
numLig:=0;
repeat inc(numLig);
LigAl:=LigneAleat(LgAleat);
// Eviter génération de profusion de doublons avec chaines très courtes
if (length(ligAl)>0) and (length(ligAl)<=3)
then LigAl:=LigAl+intToStr(numLig);
LigAl:=LigAl+#13#10;
FS.Write(PChar(LigAl)^, length(LigAl));
until FS.Size >= TailleOc;
LigAl:='ANAGRAMME'+#13#10;
FS.Write(PChar(LigAl)^, length(LigAl));
LigAl:='EMMARGANA'+#13#10;
FS.Write(PChar(LigAl)^, length(LigAl));
LigAl:='<<< MI-DOUBLON >>>'+#13#10;
FS.Write(PChar(LigAl)^, length(LigAl));
FS.Write(PChar(LigAl)^, length(LigAl));
FS.Free;
end; |
Partager