¿hay algún generador de ipsum lorem en c#?
lorem-ipsum (10)
Estoy buscando un generador de ac # que pueda generar palabras aleatorias, oraciones, párrafos dados por una cantidad de palabras / párrafos y cierta sintaxis como Dirección, números, código postal / código postal, país, números de teléfono, dirección de correo electrónico.
¿Por qué no usar el generador Lorem Ipsum Online?
Escribí este código que extrae la cadena lorem ispum de la página 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;
}
En realidad, hay un paquete en Nuget que hace esto exactamente por ti.
http://www.nuget.org/packages/NLipsum/
Por ejemplo, puedes generar un párrafo de texto con solo hacer esto:
var someComments = new NLipsum.Core.Paragraph();
Encontré este generador de Lorem Ipsum: http://www.gutgames.com/post/Lorem-Ipsum-Generator-in-C.aspx
Escribí un puerto C # de la gema Ruby Faker que se puede usar para generar fácilmente datos falsos: nombres, direcciones, números de teléfono y el texto de lorem ipsum.
Está disponible como un paquete NuGet ( Install-Package Faker.Net
) con fuente en Github y también escribí una publicación que presenta algunas de sus características, con código de ejemplo.
Hay uno en NuGet llamado NetFx Ipsum Generator .
Puedes instalarlo con
Install-Package netfx-IpsumGenerator
Aunque es bastante mínimo, actualmente estoy buscando una mejor, o una forma de contribuir.
Hola
puede usar WordGenerator o LoremIpsumGenerator del paquete nuget MMLib.RapidPrototyping.
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);
}
Me gusta esto:
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.";
Para repetirlo:
String.Join(Environment.NewLine,
Array.ConvertAll(new int[count], i => LoremIpsum));
O, en .Net 4.0:
String.Join(Environment.NewLine, Enumerable.Repeat(LoremIpsum, count));
Modificación menor del excelente método de Greg + Tomino anterior para poner en mayúscula la primera palabra de cada oración. También eliminé la nueva línea final y eliminé algunos "+ 1" que dieron demasiados. ¡Muy útil para probar las capacidades de ajuste de palabras de las interfaces de usuario! Gracias a Tomino y 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();
}
Versión con StringBuilder y sin etiquetas HTML (con nueva línea en lugar de marca de párrafo):
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();
}
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();
}