Avatar billede kxh Nybegynder
29. december 2005 - 17:02 Der er 15 kommentarer og
1 løsning

indsæt ny linie i string, ved en bestemt karakter, eller ord

Hej

Jeg sidder og roder med et funktion jeg skal have bygget, jeg vil gerne have en funktion der kan indsætte \r\n i min string, på punkter hvor udvalgte ord, eller tegn er.
f.eks
A1234,B1234,C1234 skal blive til
A1234,
B1234,
C1234
altså er komma signal for at der skal være ny linie.
Sagt på en anden måde vil jeg kunne angive en string med ord og tegn, adskildt med |, hvergang funktionen finder et af de ord/tegn skal der indsættes ny linie i den orginale string, lidt
indviklet...

// Kim
Avatar billede dr_chaos Nybegynder
29. december 2005 - 17:06 #1
du kan bruge noget i denne stil:
string test = "A1234,B1234,C1234";
            test = test.Replace(",", ",\r\n");
Avatar billede kxh Nybegynder
29. december 2005 - 17:13 #2
hej igen

Den går ikke, for jeg vil gerne beholde de tegn, så vi skal over i noget insert, og samtidig skal denne insert fungere hele vejen igennem stringen, så vi er også ude i noget i for.. løkke
Avatar billede dr_chaos Nybegynder
29. december 2005 - 17:26 #3
eller en while loop:

    string test = "A1234,B1234,C1234";
            int index = 0;
            while (true)
            {
                index = test.IndexOf(",", index+1);
                if (index != -1)
                {
                    test = test.Insert(index + 1, "\r\n");
                }
                else
                    break;
            }
Avatar billede kxh Nybegynder
29. december 2005 - 17:31 #4
og den while løkke skal så køres det antal gange, der er forskellige karakter for at lave ny linie, enig ?
Den skal nemlig også kunne lave ny linie efter forskellige ord.
Avatar billede dr_chaos Nybegynder
29. december 2005 - 17:36 #5
ja det er ikke nogen køn løsning den anden med replace er bedre.

med
test = test.Replace(",", ",\r\n");
erstatter jeg et komma med et nyt komma og \r\n.
Avatar billede bitsch Nybegynder
29. december 2005 - 17:51 #6
Endnu et alternativ:

            string myString = @"A1234, B1234, C1234";

            char[] parameters = new char[] { ',' };

            string[] convertedString = myString.Split(parameters);

            StringBuilder stringBuilder = new StringBuilder();

            foreach (string line in convertedString)
            {
                stringBuilder.AppendLine(line);
            }

            this.textBox1.Text = stringBuilder.ToString();
Avatar billede bitsch Nybegynder
29. december 2005 - 17:56 #7
Giver dig flere mulgheder hvis du f,eks. skal trimme linierne samt have forskellige separatorer.
Avatar billede kxh Nybegynder
29. december 2005 - 18:01 #8
Hej

Nu har jeg fået dr chaos løsning til at virke med replace, lagt ind i en løkke

// Kim
Avatar billede dr_chaos Nybegynder
29. december 2005 - 18:04 #9
smider et svar :)
Avatar billede bitsch Nybegynder
29. december 2005 - 18:14 #10
Hvis det er sådan som du skriver at du også skal dele ved forskellige ord, så bør du kigge nærmere på min løsning, da der er mulighed for at give et string[] som separatorer, hvilket medfører at du kan dele både ved tegn og ord.
Avatar billede Syska Mester
29. december 2005 - 18:38 #11
eller Regex....
Avatar billede Syska Mester
29. december 2005 - 18:48 #12
Regex reg = new Regex(",|nylinie");

string teststring = "A1234,B1234nylinieC1234,D1234,E1234";

Console.WriteLine(reg.Replace(teststring, ",\n\r"));
Avatar billede kxh Nybegynder
29. december 2005 - 19:07 #13
Hej Buzzzz

I hvilket namespace ligger Regex ?, ellers ser dit forslag jo ekstremt simpelt ud.
Avatar billede dr_chaos Nybegynder
29. december 2005 - 19:09 #14
system.text.regularexpressions
eller deromkring.
Avatar billede arne_v Ekspert
29. december 2005 - 20:04 #15
Med lidt store bogstaver passende steder
Avatar billede Syska Mester
29. december 2005 - 20:11 #16
using System.Text.RegularExpressions;

ja, der er ikke så mange smarte ting, hvorfor gøre ting mere besværligt end de er :-)

// ouT
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester