Avatar billede webcreator Nybegynder
21. november 2004 - 15:33 Der er 7 kommentarer og
1 løsning

Find tekst mellem tegn og efter tegn

Hej Eksperter.

Jeg har flg. tekst :

BEGIN:VCARD
VERSION:2.1
N:Hansen;Erik
TEL;WORK:12345678
TEL;HOME:87654321
EMAIL;INTERNET;PREF:erik@hansen.dk
TEL;CELL:20304050
END:VCARD

Hvordan får jeg ovenstående udpakket, så jeg får flg:

string fornavn (Erik)
string efternavn (Hansen)
string phoneWork (12345678)
string phoneHome (87654321)
string email (erik@hansen.dk)
string mobile (20304050)

Jeg ved hvordan jeg får fat i hver linie, men hvordan får jeg det ønskede data ud af hver linie ? Det må være samme løsning med telefonnumrene og email adressen (alt på linien efter tegnet kolon). Og så skal der nok bruges en anden løsning til fornavn og efternavn.
Avatar billede webcreator Nybegynder
21. november 2004 - 15:47 #1
For få points ?
Avatar billede arne_v Ekspert
21. november 2004 - 15:48 #2
Ikke speciel køn kode men:

using System;

class MainClass
{
    public static void Main(string[] args)
    {
        string s = "BEGIN:VCARD\r\n" +
                  "VERSION:2.1\r\n" +
                  "N:Hansen;Erik\r\n" +
                  "TEL;WORK:12345678\r\n" +
                  "TEL;HOME:87654321\r\n" +
                  "EMAIL;INTERNET;PREF:erik@hansen.dk\r\n" +
                  "TEL;CELL:20304050\r\n" +
                  "END:VCARD";
        string fornavn = null;
        string efternavn = null;
        string phoneWork = null;
        string phoneHome = null;
        string email = null;
        string mobile = null;
        string[] lines = s.Split("\r\n".ToCharArray());
        for(int i = 0; i < lines.Length; i++)
        {
            string[] parts = lines[i].Split(";:".ToCharArray());
            if(lines[i].IndexOf("N:") == 0)
            {
                fornavn = parts[2];
                efternavn = parts[1];
            }
            else if(lines[i].IndexOf("TEL;WORK:") == 0)
            {
                phoneWork = parts[2];
            }
            else if(lines[i].IndexOf("TEL;HOME:") == 0)
            {
                phoneHome = parts[2];
            }
            else if(lines[i].IndexOf("TEL;CELL:") == 0)
            {
                mobile = parts[2];
            }
            else if(lines[i].IndexOf("EMAIL;INTERNET;PREF:") == 0)
            {
                email = parts[3];
            }
        }
        Console.WriteLine(fornavn + " " + efternavn + " " +
                          phoneWork + " " + phoneHome + " " + mobile + " " +
                          email);
    }
}
Avatar billede webcreator Nybegynder
21. november 2004 - 15:50 #3
Uh perfekt. Tror jeg kan bruge det. Tusind tak. Jeg kigger på de forskellige funktioner med det samme :)
Avatar billede webcreator Nybegynder
21. november 2004 - 15:57 #4
Hm, jeg forstår ikke at 'parts' kan indeholde det hele. Kan du ikke gå ud fra, at hver linie ligger i sin egen variabel ? Hvordan vil det så se ud ?
Avatar billede webcreator Nybegynder
21. november 2004 - 15:58 #5
Nåå, det var en løkke. Kunne jeg ikke lige se ved første øjekast, da der ikke er nogen mellemrum i din kode. Hjalp at smide det over i en ordentlig editor med syntaks-farvning. Men vil alligevel gerne vide, hvordan det kan gøres med variabler.
Avatar billede arne_v Ekspert
21. november 2004 - 16:01 #6
Hvis du har hver linie i sin egen variabel, så vil du skulle have
udført løkkens indhold på hver enkelt variabel.

Det er meget bedre med et array.
Avatar billede webcreator Nybegynder
21. november 2004 - 16:08 #7
Oh, Ok.
Avatar billede webcreator Nybegynder
21. november 2004 - 16:15 #8
Tusind tak for hjælpen :)
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