Avatar billede keenkbh Nybegynder
21. marts 2007 - 11:35 Der er 12 kommentarer og
1 løsning

dumme dumme Array!

Hej alle sammen.

Jeg er kørt lidt død i array's. Jeg kan ikke få det til at spille, som jeg vil have det.

Jeg har en masse tekst, som skal splittes flere gange.

Først skal der splittes ved ; og det går også fint nok.

Det der går galt, er når jeg vil splitte næste gang, ved : .

Her ser det ud til, at det kun er det der står før : , som kommer ned i array.

Kode:

string[] linier = tekst.ToString().Split(";".ToCharArray());

        for (int i = 0; i < linier.Length; i++)
        {
            string[] linie = linier[i].ToString().Split(":".ToCharArray());
            Response.Write(linie[0].ToString()+": "+linie[1].ToString());
            Response.Write("<br />");
        }

Ved kørsel af det script, får jeg fejlen:
System.IndexOutOfRangeException: Index was outside the bounds of the array.

Nogen der har en idé?
Avatar billede kalp Novice
21. marts 2007 - 11:57 #1
char splitter = ';';
string[] linier = tekst.ToString().Split(splitter);


det her er en fejl rettet.
Avatar billede kalp Novice
21. marts 2007 - 11:57 #2
og du skal gøre det samme med den anden.
Avatar billede keenkbh Nybegynder
21. marts 2007 - 12:06 #3
samme fejl. Index was outside the bounds of the array

Koden ser nu sådan ud:

        char splitter = ';';
        string[] linier = tekst.ToString().Split(splitter);
       
        for (int i = 0; i < linier.Length; i++)
        {
            char splitnu = ':';
            string[] linie = linier[i].ToString().Split(splitnu);
            Response.Write(linie[0].ToString()+": "+linie[1].ToString());
            Response.Write("<br />");
        }
Avatar billede snepnet Nybegynder
21. marts 2007 - 12:43 #4
string tekst = "hej : med ; dig : du ; blah : buh";
string[] linier = tekst.Split(';');

foreach (string s in linier)
{
    string[] linie = s.Split(':');
    string result = String.Join(": ", linie);
    Response.Write(result + "<br />");
}

Men jeg forstår ikke du splitter og joiner over den samme karakter - kan du ikke bare skrive den ud?
(er det pga. mellemrummet?)

Mvh
Avatar billede snepnet Nybegynder
21. marts 2007 - 12:44 #5
Har du checket at der ikke er noget sted i din tekst hvor du ikke har et : imellem to ;
Mvh
Avatar billede keenkbh Nybegynder
21. marts 2007 - 12:57 #6
grunden til, at jeg vil splitte flere gange er, at jeg har opbygget det tekst, på følgende måde:

hel linie deles ender med ;
efter definition kommer :
efter : kommer specifikationer
hvis der er flere specifikationer til en definition, så indgår der yderligere -

eks.:

Form Factor:ATX (304mm x 244mm / 12” x 9.6”);
Processor:Supports Intel® Core™ 2 Extreme (dual and quad core), Core™ 2 Quad, Core™ 2 Duo, Pentium® D, Pentium® 4, and Celeron® D Socket 775 processors;
Chipset:NVIDIA nForce 680i SLI MCP;
Memory:Four 240-pin DDR2 DIMMs up to 8GB - Supports Dual Channel DDR2 400/533/667/800 memory;
Expansion Slots:(2) PCI Express x16 slots for dual PCI Express graphics cards - (1) PCI Express x8 slot - (2) PCI Express x1 slot - (2) PCI slots;
Audio:Enhanced 8-channel High Definition Azalia audio - Supports SPDIF output and jack sensing;
SATA:Supports six native SATA2 3.0Gb/s devices - Hot-swap capability, allowing disks to be changed without powering down the system - Optimized for NVIDIA MediaShield(tm) Storage technology - Supports SATA ATAPI devices;
IDE Port:One Ultra DMA IDE connector supports 33/66/100/133;
Floppy:One Floppy Disk Drive connector supports up to 2.88MB;
USB2.0:Ten USB 2.0 ports support up to 480Mb/s data transfer rate;
Ethernet:Two 10/100/1000 Base-T Gigabit Ethernet (LAN) interfaces;
FireWire:Two 1394a ports support up to 400Mb/s data transfer rate;
Rear panel I/O ports: PS/2 Mouse and Keyboard port - (1) IEEE1394a Port - (6) USB 2.0 ports - (2) Gigabit LAN Ports - (6) ports for 8-Channel Audio - (1) S/PDIF Output Port; 
Internal I/O connectors:(4) 3x1 pin fan connectors - (1) 4x1 pin CPU fan connector - (6) SATA2 connectors - (1) IDE connector - (1) FDD connector - (2) 5x2 pin USB connectors for an additional 4 USB ports - (1) IEEE1394a connector - (1) 5x2 pin Front Panel connector - (1) 5x2 pin Serial connector - (1) 5x2 pin Front Audio - (1) 4-pin Molex Auxiliary Power connector - (1) 24-pin ATX Power connector - (1) 8-pin ATX 12V Power connector;

Ideen er så, at jeg skal have splittet det op, så jeg kan vise det pænt på den side jeg har.

Håber at det er bare nogenlunde forståeligt.
Avatar billede keenkbh Nybegynder
21. marts 2007 - 12:58 #7
og det jeg skriver ud er bare for at teste om det jeg havde lavet var godt nok. hvilket det så ikke var... :-)
Avatar billede snepnet Nybegynder
21. marts 2007 - 13:15 #8
Jeg får ikke nogen fejl hvis jeg kører den tekst du har sendt igemmen den kode jeg postede:

string tekst = @"Form Factor:ATX (304mm x 244mm / 12” x 9.6”);
    Processor:Supports Intel® Core™ 2 Extreme (dual and quad core), Core™ 2 Quad, Core™ 2 Duo, Pentium® D, Pentium® 4, and Celeron® D Socket 775 processors;
    Chipset:NVIDIA nForce 680i SLI MCP;
    Memory:Four 240-pin DDR2 DIMMs up to 8GB - Supports Dual Channel DDR2 400/533/667/800 memory;
    Expansion Slots:(2) PCI Express x16 slots for dual PCI Express graphics cards - (1) PCI Express x8 slot - (2) PCI Express x1 slot - (2) PCI slots;
    Audio:Enhanced 8-channel High Definition Azalia audio - Supports SPDIF output and jack sensing;
    SATA:Supports six native SATA2 3.0Gb/s devices - Hot-swap capability, allowing disks to be changed without powering down the system - Optimized for NVIDIA MediaShield(tm) Storage technology - Supports SATA ATAPI devices;
    IDE Port:One Ultra DMA IDE connector supports 33/66/100/133;
    Floppy:One Floppy Disk Drive connector supports up to 2.88MB;
    USB2.0:Ten USB 2.0 ports support up to 480Mb/s data transfer rate;
    Ethernet:Two 10/100/1000 Base-T Gigabit Ethernet (LAN) interfaces;
    FireWire:Two 1394a ports support up to 400Mb/s data transfer rate;
    Rear panel I/O ports: PS/2 Mouse and Keyboard port - (1) IEEE1394a Port - (6) USB 2.0 ports - (2) Gigabit LAN Ports - (6) ports for 8-Channel Audio - (1) S/PDIF Output Port;
    Internal I/O connectors:(4) 3x1 pin fan connectors - (1) 4x1 pin CPU fan connector - (6) SATA2 connectors - (1) IDE connector - (1) FDD connector - (2) 5x2 pin USB connectors for an additional 4 USB ports - (1) IEEE1394a connector - (1) 5x2 pin Front Panel connector - (1) 5x2 pin Serial connector - (1) 5x2 pin Front Audio - (1) 4-pin Molex Auxiliary Power connector - (1) 24-pin ATX Power connector - (1) 8-pin ATX 12V Power connector;";
string[] linier = tekst.Split(';');

foreach (string s in linier)
{
    string[] linie = s.Split(':');
    string result = String.Join(": ", linie);
    Response.Write(result + "<br />");
}

Mvh
Avatar billede keenkbh Nybegynder
21. marts 2007 - 13:20 #9
jeg må nok også indrømme, at jeg ikke havde testet det stykke kode, du havde lagt op snepnet, men det vil jeg da lige gøre så. :)
Avatar billede keenkbh Nybegynder
21. marts 2007 - 15:51 #10
Hej snepnet.

Ja, du har ganske ret, dit kodeeksempel virker. Dog ikke helst efter den hensigt, som jeg gerne ville have den til.

Jeg vil egentlig bare gerne have, at strengen bliver splittet op, og forbliver sådan. :) Men det vil den åbenbart ikke. Jeg kan nok bare ikke se skoven for bare træer mere...

Har du tid til at lave et lille eksempel, hvor strengen forbliver opsplittet, men skriver det ud linie[0]: linie[1]  ...

for så kan jeg vel selv tage mig sammen bagefter, og splitte videre derfra...
Avatar billede snepnet Nybegynder
21. marts 2007 - 20:29 #11
Du kan bare gøre sådan her:
Response.Write(String.Format("{0} : {1}<br />", linie[0], linie[1]));
Istedet for det join jeg laver.
Du skal bare huske at du ikke må afslutte med et ; - det splitter du jo over, så i den sidste linie, vil du have en tom string i linie[1], og den får du ikke meget ud af at splitte over et :
Mvh
Avatar billede keenkbh Nybegynder
22. marts 2007 - 08:25 #12
yes. Det virkede...tak.

Smid et svar, så du kan få dine velfortjente point.
Avatar billede snepnet Nybegynder
22. marts 2007 - 09:38 #13
Kommer her :o)
Mvh
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