20. november 2010 - 11:24Der er
33 kommentarer og 1 løsning
En hvis længde på en textbox er større end xx skal den deles op.
Hej igen.
Nu er jeg igang med at rode lidt med, hvis textBox5.text er længere (.Length) end 200. Så skal den deles op. Jeg kunne forstille mig, at jeg skal bruge noget ala: List<string> textBox5.text = new List<string>();
Men jeg er ikke sikker. Den skal nemlig sende fra textBox5 til textBox1, og hvis den er længere end de 200. Så skal den skrive det på to forskellige linjer.
Hvis vi siger længen max må være 10 og teksten er sådan:
Hej med jer alle sammen, hvordan har I det?
Der er 43, og hvis man går 10 hen, så slutter den på "hej med je" - her skulle den så gerne tage det sidste ord med, eller smide det på den næste linje der skal komme.
int max = 150; StringBuilder builder = new StringBuilder(); string current; List<string> outputs = new List<string>(); for (int i = 0; i < textBox5.Text.Length; i++) { current = String.Format(textBox5.Text); if (builder.Length + current.Length > max) { outputs.Add(builder.ToString()); builder = new StringBuilder(); } builder.Append(current); } outputs.Add(builder.ToString()); if (textBox5.Text.Length == 0) textBox1.Text += "Der er ingen tekst"; else foreach (string cur in outputs) { textBox1.Text += cur; textBox5.Clear(); }
Prøvede at lave noget ud af det, men den spammer textBox1 i stedet for.
public static string SplitLines(string s, int maxlen, string del) { StringBuilder res = new StringBuilder(""); string[] word = s.Split(" ".ToCharArray()); int ix = 0; string line = ""; while(ix < word.Length) { if((line + 1 + word[ix]).Length > maxlen) { line += del; res.Append(line); line = ""; } if(line.Length > 0) { line += " "; } line += word[ix]; ix++; } if(line.Length > 0) { line += del; res.Append(line); } return res.ToString(); }
eksempel på kald:
SplitLines("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In commodo. Mauris nec ipsum. Donec tincidunt. Aliquam erat volutpat. Pellentesque aliquam. Donec interdum malesuada arcu. Duis risus posuere.", 20, "\r\n")
public void Dat(string data) { textBox1.Text += "Besked: " + data + "\r\n"; textBox1.Select(textBox1.Text.Length, 0); textBox1.ScrollToCaret(); }
Og jeg f.eks. bruger din kode:
Dat(SplitLines("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In commodo. Mauris nec ipsum. Donec tincidunt. Aliquam erat volutpat. Pellentesque aliquam. Donec interdum malesuada arcu. Duis risus posuere.", 20, "\r\n"));
Hvordan kan jeg så slette "\r\n\" og det fungere så den løber hver linje igennem med dit splitlines?
Dat("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In commodo. Mauris nec ipsum. Donec tincidunt. Aliquam erat volutpat. Pellentesque aliquam. Donec interdum malesuada arcu. Duis risus posuere.")
Arne, jeg kunne vel ikke lokke dig til, at hjælpe mig med få rettet scriptet til?
For i stedet for "\r\n", vil jeg gerne have den bare skriver Dat() og så selvfølgelig den tekst som skal sendes af sted. Umiddelbart ville jeg tro, at #5 kunne. Men det spammer bare hele textboxen.
Jamen det jeg gerne vil have, det er når den skal lave det linje skift. Så skal den smide Dat() på i stedet for. Hvordan skal det fikses ind i dit script?
Hvis jeg skriver: "Hej Eksperten, dette er en test og god søndag."
Så udskriver den:
"Besked: Hej Eksperten, dette er en test og god søndag."
Men jeg vil gerne have den skriver:
"Besked: Hej Eksperten, dette "Besked: er en test og god "Besked: søndag."
Så det vil sige, den gøre min Dat() igennem i stedet for "\r\n"
SplitLines(Hej Eksperten, dette er en test og god søndag); og i den, så tager den selv 20 i længden og laver en ny linje med Dat(). Håber du forstår mig nu. :-)
Arne, kan du ikke svare mig, hvorfor denne spammer helt vildt i min tekst boks:
public void spl(string data) { int max = 20; StringBuilder builder = new StringBuilder(); List<string> outputs = new List<string>(); for (int i = 0; i < data.Length; i++) { if (builder.Length + data.Length > max) { outputs.Add(builder.ToString()); builder = new StringBuilder(); } builder.Append(data); } //builder.Append(String.Format("Denner.")); outputs.Add(builder.ToString()); if (data.Length == 0) { Dat("Ingen tekst"); } else foreach (string cur in outputs) { Dat(cur); } }
public void Dat(string data) { textBox1.Text += "Besked: " + data + "\r\n"; textBox1.Select(textBox1.Text.Length, 0); textBox1.ScrollToCaret(); }
---
Besked: Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag. Besked: Hej Eksperten, dette er en test og god søndag.
spl(textBox5.Text);
Det er det resultat jeg får, hvordan får jeg det fikset?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.