Avatar billede 127144146281 Nybegynder
02. august 2000 - 20:05 Der er 9 kommentarer og
1 løsning

replace \"\\n\" -> \"<br>\" (CString)

Tjae efter adskillige timer på #c++ på IRC  uden held prøver jeg lige her;

Jeg har;

CString strRes = \"altmuligt\\nnylinje\\nflere linjer\\n\\n\\n endnu flere\";
CString strRep = \"\";

hvordan får jeg så strRap til at indeholde det som strRes gør, hvor alle newlines (\\n) er udskiftet med <br>?

Det skulle kunne gøres sådan her med CString::Replace

strRep = strRes.Replace(\"\\n\",\"<br>\");

men CString::Replace ser ikke ud til at kunne klare \\n, den retunerer hvertfald bare garbage.
Avatar billede stigc Nybegynder
02. august 2000 - 20:20 #1
skal du ikke skrive (dobbelt slash!)

strRep = strRes.Replace(\"\\\\n\",\"<br>\");
Avatar billede 127144146281 Nybegynder
02. august 2000 - 20:23 #2
for at finde newlines?, hmm tror det nu ikke, men vil da prøve
Avatar billede 127144146281 Nybegynder
02. august 2000 - 20:26 #3
nej virker ikke
Avatar billede stigc Nybegynder
02. august 2000 - 20:26 #4
skal man ikke skrive \"\\\\\" når man menere \"\\\"?
Jeg kan huske om man skal det i c++
Avatar billede stigc Nybegynder
02. august 2000 - 20:28 #5
Der mangler vist et \"ikke\"
Avatar billede 127144146281 Nybegynder
02. august 2000 - 20:30 #6
\\n = ny linje

det jeg vil er at finde alle *newlines* og skrive <br> istedet

(\\\\n  virkede ikke, den gav 1, som er helt i skoven)
Avatar billede 127144146281 Nybegynder
02. august 2000 - 20:38 #7
det må gerne være i andet end CString format
Avatar billede 127144146281 Nybegynder
02. august 2000 - 20:52 #8
nå så må jeg jo selv lave en funktion der gør det
Avatar billede 127144146281 Nybegynder
02. august 2000 - 21:17 #9
nå løste det selv med <string>;

    string text = \"\\n df s\";
    string word = \"\\n\";
    string replacement = \"<br>\";

    int start = text.find(word);
    while(start != string::npos)
    {
        text.replace(start, word.length(), replacement);
        start = text.find(word,start+replacement.length());
    }
   


    strRes = text.c_str();
    AfxMessageBox(strRes,MB_OK);

Avatar billede 127144146281 Nybegynder
02. august 2000 - 21:19 #10
typisk ms at gøre noget halvfærdig man kan sku da ikke have en CString::Replace funktion når den ikke engang kan replace et skide \\n til <br>
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
Kurser inden for grundlæggende programmering

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