|
Registriert seit: 31. Jan 2006 Ort: Weimar 345 Beiträge Delphi 10.4 Sydney |
#8
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:
Aufruf:
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.
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. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |