web-dev-qa-db-ja.com

C#にloremipsumジェネレーターはありますか?

ランダムな単語、文、いくつかの単語/段落で指定された段落、および住所、番号、郵便番号/郵便番号、国、電話番号、電子メールアドレスなどの特定の構文を生成できるc#ジェネレーターを探しています。

32
alex
static string LoremIpsum(int minWords, int maxWords,
    int minSentences, int maxSentences,
    int numParagraphs) {

    var words = new[]{"lorem", "ipsum", "dolor", "sit", "amet", "consectetuer",
        "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod",
        "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat"};

    var Rand = new Random();
    int numSentences = Rand.Next(maxSentences - minSentences)
        + minSentences + 1;
    int numWords = Rand.Next(maxWords - minWords) + minWords + 1;

    StringBuilder result = new StringBuilder();

    for(int p = 0; p < numParagraphs; p++) {
        result.Append("<p>");
        for(int s = 0; s < numSentences; s++) {
            for(int w = 0; w < numWords; w++) {
                if (w > 0) { result.Append(" "); }
                result.Append(words[Rand.Next(words.Length)]);
            }
            result.Append(". ");
        }
        result.Append("</p>");
    }

    return result.ToString();
}
52
Greg

Ruby Faker gemのC#ポートを作成しました。これを使用して、名前、住所、電話番号、loremipsumテキストなどの偽のデータを簡単に生成できます。

NuGetパッケージとして利用できます(Install-Package Faker.Net)Githubのソースを使用して、サンプルコードを使用してその機能の一部を紹介する投稿も作成しました。

26
Ben Smith

このような:

const string LoremIpsum = @"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

繰り返すには:

String.Join(Environment.NewLine, 
            Array.ConvertAll(new int[count], i => LoremIpsum));

または、.Net 4.0では:

String.Join(Environment.NewLine, Enumerable.Repeat(LoremIpsum, count));
26
SLaks

Nugetには、まさにこれを実行するパッケージが実際にあります。

http://www.nuget.org/packages/NLipsum/

たとえば、次のようにするだけで、テキストの段落を生成できます。

var someComments = new NLipsum.Core.Paragraph();
6
Joseph

StringBuilderを使用し、HTMLタグを使用しないバージョン(段落記号の代わりに改行を使用):

    private static string LoremIpsum(int minWords, int maxWords, int minSentences, int maxSentences, int numLines)
    {
        var words = new[]{"lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod", "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat"};

        var Rand = new Random();
        int numSentences = Rand.Next(maxSentences - minSentences)
            + minSentences + 1;
        int numWords = Rand.Next(maxWords - minWords) + minWords + 1;

        var sb = new StringBuilder();
        for (int p = 0; p < numLines; p++)
        {
            for (int s = 0; s < numSentences; s++)
            {
                for (int w = 0; w < numWords; w++)
                {
                    if (w > 0) { sb.Append(" "); }
                    sb.Append(words[Rand.Next(words.Length)]);
                }
                sb.Append(". ");
            }
            sb.AppendLine();
        }
        return sb.ToString();
    }
2
Tomino

こんにちは
MMLib.RapidPrototypingnugetパッケージのWordGeneratorまたはLoremIpsumGeneratorを使用できます。

using MMLib.RapidPrototyping.Generators;
public void Example()
{
   WordGenerator generator = new WordGenerator();
   var randomWord = generator.Next();

   Console.WriteLine(randomWord);

   LoremIpsumGenerator loremIpsumGenerator = new LoremIpsumGenerator();
   var text = loremIpsumGenerator.Next(3,3);

   Console.WriteLine(text);
} 

Nugetサイト
Codeplexプロジェクトサイト

2
Mino

上記のGreg + Tominoの優れた方法を少し変更して、各文の最初の単語を大文字にします。また、末尾の改行を削除し、1つが多すぎる「+1」をいくつか削除しました。ユーザーインターフェイスのワードラップ機能をテストするのに非常に便利です。 Tomino&Gregに感謝します。

private static string LoremIpsum(int minWords, int maxWords, int minSentences, int maxSentences, int numLines)
{
    var words = new[]{"lorem", "ipsum", "dolor", "sit", "amet", "consectetuer", "adipiscing", "elit", "sed", "diam", "nonummy", "nibh", "euismod", "tincidunt", "ut", "laoreet", "dolore", "magna", "aliquam", "erat"};

    var Rand = new Random();
    int numSentences = Rand.Next(maxSentences - minSentences)
        + minSentences;
    int numWords = Rand.Next(maxWords - minWords) + minWords;

    var sb = new StringBuilder();
    for (int p = 0; p < numLines; p++)
    {
        for (int s = 0; s < numSentences; s++)
        {
            for( int w = 0; w < numWords; w++ )
            {
                if( w > 0 ) { sb.Append( " " ); }
                string Word = words[ Rand.Next( words.Length ) ];
                if( w == 0 ) { Word = Word.Substring( 0, 1 ).Trim().ToUpper() + Word.Substring( 1 ); }
                sb.Append( Word );
            }
            sb.Append(". ");
        }
        if ( p < numLines-1 ) sb.AppendLine();
    }
    return sb.ToString();
}
2
kEnobus

Lorem Ipsum Onlineジェネレーターを使用しないのはなぜですか?

HTMLページからloremispum文字列を抽出する次のコードを作成しました。

string LoremIpsum()
{
   string HTML = null;
   WebRequest request = WebRequest.Create("http://lipsum.com/feed/html"); 
   request.Credentials = CredentialCache.DefaultCredentials;
   HttpWebResponse response = (HttpWebResponse)request.GetResponse();
   Stream dataStream = response.GetResponseStream();
   StreamReader reader = new StreamReader(dataStream);
   HTML = reader.ReadToEnd(); //se citeste codul HTMl

   //searching for Lorem Ipsum
   HTML = HTML.Remove(0, HTML.IndexOf("<div id=\"lipsum\">")); 
   HTML = HTML.Remove(HTML.IndexOf("</div>"));
   HTML = HTML
        .Replace("<div id=\"lipsum\">", "")
        .Replace("</div>", "")
        .Replace("<p>", "")
        .Replace("</p>", "");

   reader.Close();
   dataStream.Close();
   response.Close();
   return HTML; 
}
2
Ionică Bizău

NuGetには NetFx Ipsum Generator という名前があります。

あなたはそれをインストールすることができます

Install-Package netfx-IpsumGenerator

それはかなり最小限ですが、私は現在、より良いもの、または貢献する方法を探しています。

0
John MacIntyre

このLoremIpsumジェネレーターが見つかりました: http://www.gutgames.com/post/Lorem-Ipsum-Generator-in-C.aspx

0
Muxa