Подтвердить что ты не робот

Есть ли lorem ipsum generator в С#?

Я ищу генератор aС#, который может генерировать случайные слова, предложения, параграфы, заданные рядом слов/абзацев, и определенный синтаксис, такой как Адрес, цифры, почтовый индекс/почтовый индекс, страна, номера телефонов, адрес электронной почты.

4b9b3361

Ответ 1

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();
}

Ответ 2

Я написал порт С# для камня Ruby Faker, который можно использовать для создания фальшивых данных: имена, адреса, номера телефонов и текст lorem ipsum.

Он доступен как пакет NuGet (Install-Package Faker.Net) с источником в Github, и я также написал сообщение, представляющее некоторые из его функций, с образцом кода.

Ответ 3

Вот так:

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));

Ответ 4

На самом деле есть пакет на Nuget, который делает это для вас.

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

Например, вы можете сгенерировать абзац текста, просто сделав это:

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

Ответ 5

Версия с использованием 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();
    }

Ответ 6

Незначительная модификация для Greg + Tomino превосходного метода выше, чтобы загладить первое слово каждого предложения. Я также удалил завершающую новую строку и удалил некоторые "+ 1", которые дали слишком много. Очень удобно для тестирования возможностей переноса слов пользовательских интерфейсов! Благодаря Томино и Грегу.

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();
}

Ответ 7

Почему бы не использовать генератор Lorem Ipsum Online?

Я написал этот код, который извлекает строку lorem ispum из HTML-страницы:

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; 
}

Ответ 8

Здравствуйте,
вы можете использовать WordGenerator или LoremIpsumGenerator из пакета MMLib.RapidPrototyping nuget.

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

Ответ 9

Там в NuGet называется NetFx Ipsum Generator.

Вы можете установить его с помощью

Install-Package netfx-IpsumGenerator

Это довольно минимально, хотя в настоящее время я ищу лучшего или способ внести свой вклад.