Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
Delphi 10.4 Sydney
|
AW: TStringList erzeugt Zeilenumbruch am Ende?
23. Jun 2022, 18:27
Hallo, ich knüpfe hier einfach an, weil es sich um die gleiche Thematik handelt.
Meinen LoremIpsum Generator habe ich etwas verbessert.
Hier das Ergebnis.
Vielleicht möchte der Ein oder Andere sich um Fehlerkorrektur bemühen?
Delphi-Quellcode:
unit Unit_LoremIpsum;
interface
uses
SysUtils, Classes;
type
TLoremIpsumVariant = (Standard, Bavaria);
function CreateLoremIpsum(aWorte: Integer): String; overload;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer): String; overload;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer; aUsePre: Boolean): String; overload;
function CreateLoremIpsum(aWorte: Integer; aUsePre: Boolean): String; overload;
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant): String; overload;
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant; aPunktierung: Boolean): String; overload;
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant; aPunktierung: Boolean; aKommata: Boolean): String; overload;
function CreateLoremIpsum(aWorte: Integer; aPunktierung: Boolean; aKommata: Boolean): String; overload;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer; aPunktierung: Boolean; aKommata: Boolean): String; overload;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer; aUsePre: Boolean; aVariante: TLoremIpsumVariant; aPunktierung: Boolean; aKommata: Boolean): String; overload;
implementation
var
Absatz: Integer;
UsePre: Boolean;
Variante: TLoremIpsumVariant;
Punktierung: Boolean;
Kommata: Boolean;
const
LoremIpsum_Pre = ' Lorem ipsum ';
LoremIpsum: Array [1 .. 117] of string = (' dolor', ' sit', ' amet', ' consetetur', ' sadipscing', ' elitr', ' sed', ' diam', ' nonumy', ' eirmod', ' tempor', ' invidunt', ' ut', ' labore', ' et', ' dolore', ' magna', ' aliquyam', ' erat',
' voluptua', ' at', ' vero', ' eos', ' accusam', ' justo', ' duo', ' dolores', ' ea', ' rebum', ' stet', ' clita', ' kasd', ' gubergren', ' no', ' sea', ' takimata', ' sanctus', ' est', ' lorem', ' ipsum', ' duis', ' autem', ' vel', ' eum',
' iriure', ' in', ' hendrerit', ' vulputate', ' velit', ' esse', ' molestie', ' consequat', ' illum', ' eu', ' feugiat', ' nulla', ' facilisis', ' eros', ' accumsan', ' iusto', ' odio', ' dignissim', ' qui', ' blandit', ' praesent',
' luptatum', ' zzril', ' delenit', ' augue', ' te', ' feugait', ' facilisi', ' consectetuer', ' adipiscing', ' elit', ' nonummy', ' nibh', ' euismod', ' tincidunt', ' laoreet', ' aliquam', ' volutpat', ' wisi', ' enim', ' ad', ' minim',
' veniam', ' quis', ' nostrud', ' exerci', ' tation', ' ullamcorper', ' suscipit', ' lobortis', ' nisl', ' aliquip', ' ex', ' commodo', ' nam', ' liber', ' cum', ' soluta', ' nobis', ' eleifend', ' option', ' congue', ' nihil', ' imperdiet',
' doming', ' id', ' quod', ' mazim', ' placerat', ' facer', ' possim', ' assum', ' amet');
LoremIpsum_Bavaria_Pre = ' Bavaria ipsum ';
LoremIpsum_Bavaria: Array [1 .. 389] of string = (' ghupft', ' wia', ' gsprunga', ' pfiad', ' de', ' guad', ' freibia', ' eam', ' oa', ' meidromml', ' a', ' bissal', ' aba', ' fei', ' moand', ' deandlgwand', ' da', ' buachbinda',
' wanninger', ' schneid', ' milli', ' maßkruag', ' wos', ' des', ' muas', ' ma', ' hoid', ' kenna', ' nix', ' gwiass', ' woass', ' ned', ' af', ' etza', ' kimmt', ' vergeltsgott', ' wann', ' griagd', ' nacha', ' z', ' dringa', ' leonhardifahrt',
' ham', ' radi', ' resch', ' xaver', ' haferl', ' greichats', ' is', ' liab', ' griasd', ' eich', ' midnand', ' weißwiaschd', ' mim', ' radl', ' foahn', ' hendl', ' schdeckalfisch', ' gscheit', ' unbandig', ' maibam', ' mechad', ' gschicht',
' sauba', ' scheans', ' marterl', ' woar', ' hod', ' dringma', ' aweng', ' maß', ' und', ' no', ' landla', ' gaudi', ' foidweg', ' hi', ' schdarmbeaga', ' see', ' mongdratzal', ' ewig', ' drei', ' dog', ' geh', ' mi', ' maderln', ' fingahaggln',
' anbandeln', ' schmankal', ' radler', ' weibaleid', ' namidog', ' marei', ' i', ' bin', ' woschechta', ' bayer', ' ebba', ' klampfn', ' enzian', ' basd', ' scho', ' obazda', ' bitt', ' prosd', ' spernzaln', ' auffi', ' gidarn', ' auf',
' gehds', ' beim', ' schichtl', ' allerweil', ' habedehre', ' ded', ' sog', ' schorsch', ' watschnpladdla', ' iabaroi', ' aasgem', ' pfenningguat', ' biakriagal', ' kummd', ' barfuaßat', ' umma', ' baamwach', ' ramasuri', ' wuascht',
' liberalitas', ' bavariae', ' buam', ' jedza', ' ohrwaschl', ' om', ' n', ' gipfe', ' kirwa', ' sei', ' gehd', ' ollaweil', ' oans', ' zwoa', ' gsuffa', ' d', ' trihöleridi', ' dijidiholleri', ' schoo', ' gscheckate', ' edlweiss', ' nomoi',
' zidern', ' woibbadinga', ' obacht', ' measi', ' liabs', ' deandl', ' goaßmaß', ' in', ' greana', ' au', ' diandldrahn', ' bradwurschtsemmal', ' daad', ' g', ' hupft', ' midanand', ' schüds', ' nei', ' noch', ' giasinga', ' heiwog',
' breihaus', ' schuabladdla', ' fünferl', ' griasnoggalsubbm', ' do', ' bittschön', ' imma', ' mogsd', ' bussal', ' aso', ' nimma', ' hob', ' an', ' suri', ' wea', ' nia', ' ausgähd', ' kummt', ' hoam', ' ganze', ' hoiwe', ' haberertanz',
' wiad', ' mordsgaudi', ' oba', ' schbozal', ' eana', ' hea', ' schee', ' fensdaln', ' hoggd', ' griaß', ' god', ' beinand', ' fias', ' sodala', ' hemad', ' glacht', ' helfgod', ' resi', ' fescha', ' bua', ' gstanzl', ' hog', ' di', ' singd',
' kini', ' naa', ' kumm', ' sepp', ' abfieseln', ' schellnsau', ' charivari', ' zünftig', ' broadwurschtbudn', ' dahoam', ' samma', ' gamsbart', ' need', ' hallelujah', ' luja', ' koa', ' wuid', ' amoi', ' biagadn', ' von', ' gfreit', ' am',
' acht', ' tag', ' schuf', ' gott', ' bia', ' hinter', ' m', ' berg', ' san', ' leit', ' hogg', ' uns', ' zamm', ' obandeln', ' hetschapfah', ' kloan', ' musi', ' so', ' schmarn', ' reiwadatschi', ' kuaschwanz', ' back', ' mas', ' gwihss',
' wolln', ' ognudelt', ' moan', ' oiwei', ' jo', ' mei', ' gams', ' wo', ' großherzig', ' soi', ' biazelt', ' ledahosn', ' wolpern', ' semmlkneedl', ' servas', ' der', ' oim', ' gibt', ' s', ' sünd', ' oachkatzlschwoaf', ' singan', ' legst',
' nieda', ' es', ' zua', ' hab', ' heimatland', ' pfundig', ' biawambn', ' jodler', ' gwiss', ' schaugn', ' nimmds', ' vui', ' spezi', ' graudwiggal', ' kaiwe', ' spotzerl', ' zwedschgndadschi', ' ja', ' red', ' bloß', ' gmahde', ' wiesn',
' sowos', ' weida', ' gelbe', ' rüam', ' schaung', ' kost', ' lem', ' lossn', ' umananda', ' denn', ' wiavui', ' gor', ' gar', ' narrisch', ' gean', ' wurscht', ' huift', ' auszutzeln', ' mehra', ' dee', ' schwoanshaxn', ' vasteh', ' waar',
' soweid', ' sauakraud', ' trachtnhuat', ' baddscher', ' middn', ' guglhupf', ' steckerleis', ' schnacksln', ' weiznglasl', ' du', ' dadst', ' daugn', ' sammawiedaguad', ' heid', ' watschnbaam', ' mog', ' blärrd', ' kneedl', ' engelgwand',
' sonn', ' spuiratz', ' owe', ' leck', ' oamoi', ' brezn', ' vo', ' heitzdog', ' greaßt', ' nachad', ' ozapfa', ' gfoids', ' sagrisch', ' almrausch', ' sauwedda', ' glei', ' brodzeid', ' gschmeidig', ' bladl', ' bravs', ' lewakaas', ' wui',
' boarischer', ' hawadere', ' midananda', ' im', ' beidl', ' dei', ' mamalad', ' prosit', ' gmiadlichkeit', ' stubn', ' wirds', ' fui', ' lustiga', ' brotzeit', ' biaschlegl', ' oans');
function CreateLoremIpsum(aWorte: Integer): String;
begin
Result := CreateLoremIpsum(aWorte, Absatz, UsePre, Variante, Punktierung, Kommata);
end;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer): String;
begin
Result := CreateLoremIpsum(aWorte, aAbsatz, UsePre, Variante, Punktierung, Kommata);
end;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer; aUsePre: Boolean): String;
begin
Result := CreateLoremIpsum(aWorte, aAbsatz, aUsePre, Variante, Punktierung, Kommata);
end;
function CreateLoremIpsum(aWorte: Integer; aUsePre: Boolean): String;
begin
Result := CreateLoremIpsum(aWorte, Absatz, aUsePre, Variante, Punktierung, Kommata);
end;
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant; aPunktierung: Boolean): String;
begin
Result := CreateLoremIpsum(aWorte, Absatz, UsePre, aVariante, aPunktierung, Kommata);
end;
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant; aPunktierung: Boolean; aKommata: Boolean): String;
begin
Result := CreateLoremIpsum(aWorte, Absatz, UsePre, aVariante, aPunktierung, aKommata);
end;
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant): String;
begin
Result := CreateLoremIpsum(aWorte, Absatz, UsePre, aVariante, Punktierung, Kommata);
end;
function CreateLoremIpsum(aWorte: Integer; aPunktierung: Boolean; aKommata: Boolean): String;
begin
Result := CreateLoremIpsum(aWorte, Absatz, UsePre, Variante, aPunktierung, aKommata);
end;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer; aPunktierung: Boolean; aKommata: Boolean): String;
begin
Result := CreateLoremIpsum(aWorte, aAbsatz, UsePre, Variante, aPunktierung, aKommata);
end;
function CreateLoremIpsum(aWorte: Integer; aAbsatz: Integer; aUsePre: Boolean; aVariante: TLoremIpsumVariant; aPunktierung: Boolean; aKommata: Boolean): String;
var
Dummy_String: String;
Dummy_Int: Integer;
Dummy_Wort: String;
Dummy_Absatz: Integer;
Dummy_Komma: Boolean;
Dummy_Punkt: Boolean;
begin
Result := default ( String);
Dummy_String := default ( String);
Dummy_Absatz := default (Integer);
Dummy_Punkt := default (Boolean);
if aWorte < 1 then
begin
Exit;
end; // if aWorte < 1 then
Randomize;
if aUsePre then
begin
case aVariante of
Standard:
begin
Result := LoremIpsum_Pre;
end; // Standard
Bavaria:
begin
Result := LoremIpsum_Bavaria_Pre;
end; // Bavaria
end; // case aVariante of
end; // if aUsePre then
if aWorte = 1 then
begin
case aVariante of
Standard:
begin
Dummy_String := LoremIpsum[Random(High(LoremIpsum))];
if aAbsatz > 0 then
if aUsePre then
Dummy_String := sLineBreak + LoremIpsum[Random(High(LoremIpsum))];
end; // Standard
Bavaria:
begin
Dummy_String := LoremIpsum_Bavaria[Random(High(LoremIpsum_Bavaria))];
if aAbsatz > 0 then
if aUsePre then
Dummy_String := sLineBreak + LoremIpsum_Bavaria[Random(High(LoremIpsum_Bavaria))];
end; // Bavaria
end; // case aVariante of
if aPunktierung then
Dummy_String := Dummy_String + ' .';
end; // if aWorte = 1 then
if aWorte > 1 then
begin
if aAbsatz > 0 then
begin
Dummy_Absatz := aWorte div aAbsatz;
if aAbsatz > aWorte then
begin
Dummy_Absatz := aWorte div 3;
end; // if aAbsatz > aWorte then
end; // if aAbsatz > 0 then
for Dummy_Int := 1 to aWorte do
begin
case aVariante of
Standard:
begin
Dummy_Wort := LoremIpsum[Random(High(LoremIpsum))];
end; // Standard
Bavaria:
begin
Dummy_Wort := LoremIpsum_Bavaria[Random(High(LoremIpsum_Bavaria))];
end; // Bavaria
end;
if Dummy_Punkt or (Random(Dummy_Int) mod 4 = 2) then
begin
Dummy_Wort[1] := UpCase(Dummy_Wort[1]);
end; // 1. Buchstabe GROß if Random(Dummy_Int) mod 4 = 2 then
Dummy_Komma := default (Boolean);
if aKommata then
begin
if Random(Dummy_Int) mod 7 = Random(2) then
begin
Dummy_Wort := Dummy_Wort + ' ,';
Dummy_Komma := True;
end; // if Random(Dummy_Int) mod 7 = Random(2) then
end; // if aKommata then
Dummy_Punkt := default (Boolean);
if aPunktierung and ( not Dummy_Komma) then
begin
if Random(Dummy_Int) mod 17 = Random(2) then
begin
Dummy_Wort := Dummy_Wort + ' .';
Dummy_Punkt := True;
end; // if Random(Dummy_Int) mod 17 = Random(2) then
end;
Dummy_String := Dummy_String + Dummy_Wort + #32;
if Dummy_Absatz > 0 then
begin
if Dummy_Int mod Dummy_Absatz = 0 then
begin
Dummy_String := Dummy_String + sLineBreak;
end; // if Dummy_Int mod Dummy_Absatz = 0 then
end; // if Dummy_Absatz > 0 then
end; // for Dummy_Int := 1 to aWorte do
end; // if aWorte > 1 then
Result := Result + Dummy_String;
end;
end.
Aufruf:
Delphi-Quellcode:
uses Unit_LoremIpsum;
{..}
ShowMessage(CreateLoremIpsum(125));
ShowMessage(CreateLoremIpsum(125, Bavaria));
ShowMessage(CreateLoremIpsum(125, Bavaria, True, True));
ShowMessage(CreateLoremIpsum(125, 4, True));
{..}
TODO:
1. Punktierung am Ende korrigieren
2. Bessere Absätze bilden
3. Andere Varianten
LG
Mathias Ich vergesse einfach zu viel.
|